Skip to content

Commit 9490567

Browse files
WIP
1 parent 6043cf0 commit 9490567

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

‎include/xsimd/arch/xsimd_avx.hpp‎

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1218,10 +1218,15 @@ namespace xsimd
12181218
XSIMD_INLINE void
12191219
store_complex_masked(std::complex<T>* mem, batch<std::complex<T>, A> const& src, batch_bool<T, A> mask, Mode mode, requires_arch<avx>) noexcept
12201220
{
1221+
using mask_register_type = typename batch_bool<T, A>::register_type;
1222+
mask_register_type nmask = mask.to_native();
1223+
batch_bool<T, A> lo_mask = zip_lo(batch<T, A>(nmask), batch<T, A>(nmask)).to_native();
1224+
batch_bool<T, A> hi_mask = zip_hi(batch<T, A>(nmask), batch<T, A>(nmask)).to_native();
1225+
12211226
auto src_lo = detail::complex_low(src, A{});
12221227
auto src_hi = detail::complex_high(src, A{});
1223-
store_masked(reinterpret_cast<T*>(mem), src_lo, mask, mode, A{});
1224-
store_masked(reinterpret_cast<T*>(mem) + src.size, src_hi, mask, mode, A{});
1228+
store_masked(reinterpret_cast<T*>(mem), src_lo, lo_mask, mode, A{});
1229+
store_masked(reinterpret_cast<T*>(mem) + src.size, src_hi, hi_mask, mode, A{});
12251230
}
12261231

12271232
namespace detail

0 commit comments

Comments
 (0)