Skip to content

Commit 62a008c

Browse files
Optimize avx2 store of batch_bool for 64 bit registers
1 parent ac8a93f commit 62a008c

File tree

1 file changed

+2
-6
lines changed

1 file changed

+2
-6
lines changed

include/xsimd/arch/xsimd_avx2.hpp

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1013,12 +1013,8 @@ namespace xsimd
10131013
}
10141014
else XSIMD_IF_CONSTEXPR(sizeof(T) == 8)
10151015
{
1016-
const auto bmask = _mm_set_epi8(
1017-
-1, -1, -1, -1, -1, -1, -1, -1,
1018-
-1, -1, -1, -1, -1, -1, 8, 0);
1019-
auto pack = _mm_unpacklo_epi16(_mm_shuffle_epi8(b_lo, bmask), _mm_shuffle_epi8(b_hi, bmask));
1020-
uint32_t val = _mm_cvtsi128_si32(_mm_sub_epi8(_mm_set1_epi8(0), pack));
1021-
memcpy(mem, &val, sizeof(val));
1016+
uint32_t mask = _mm256_movemask_epi8(_mm256_srli_epi64(b, 56));
1017+
memcpy(mem, &mask, sizeof(mask));
10221018
}
10231019
else
10241020
{

0 commit comments

Comments
 (0)