You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
perf: native AVX512BW masked load/store for 8/16-bit integers
8/16-bit int masked load/store on AVX512BW previously fell through to the
branchy common scalar fallback because xsimd_avx512bw.hpp had no
load_masked/store_masked overloads. Add four requires_arch<avx512bw>
overloads (runtime batch_bool + compile-time batch_bool_constant, load +
store) constrained to sizeof(T)==1||2, emitting the native vmovdqu8 /
vmovdqu16 predicated moves (2 instructions, no branch).
The size branch lives only in the runtime overloads; the constant
overloads delegate via mask.as_batch_bool(), which also avoids
batch_bool_constant::mask() (return type int) truncating a 64-lane int8
compile-time mask.
32/64-bit stays on the avx512f path; SSE/AVX2 8/16-bit scalar fallback is
hardware-forced and unchanged.
0 commit comments