VPEXPANDB - Packed EXPAND Byte

VPEXPANDB xmm1{k1}{z}, xmm2/m128    (V5+VBMI2+VL
__m128i _mm_mask_expand_epi8(__m128i s, __mmask16 k, __m128i a)
__m128i _mm_maskz_expand_epi8(__mmask16 k, __m128i a)
__m128i _mm_mask_expandloadu_epi8(__m128i s, __mmask16 k, void* p)
__m128i _mm_maskz_expandloadu_epi8(__mmask16 k, void* p)

If each bit of (2) is set, the corresponding element of (3) is copied from (1), taken one by one from the lowest element.
If corresponding bit of (2) is not set, (3) element is:
  zero cleared if {z} is specified (_maskz_ intrinsic is used)
  left unchanged if {z} is not specified. (copied from s if _mask_ intrinsic is used.)
VPEXPANDB ymm1{k1}{z}, ymm2/m256    (V5+VBMI2+VL
__m256i _mm256_mask_expand_epi8(__m256i s, __mmask32 k, __m256i a)
__m256i _mm256_maskz_expand_epi8(__mmask32 k, __m256i a)
__m256i _mm256_mask_expandloadu_epi8(__m256i s, __mmask32 k, void* p)
__m256i _mm256_maskz_expandloadu_epi8(__mmask32 k, void* p)

If each bit of (2) is set, the corresponding element of (3) is copied from (1), taken one by one from the lowest element.
If corresponding bit of (2) is not set, (3) element is:
  zero cleared if {z} is specified (_maskz_ intrinsic is used)
  left unchanged if {z} is not specified. (copied from s if _mask_ intrinsic is used.)
VPEXPANDB zmm1{k1}{z}, zmm2/m512    (V5+VBMI2
__m512i _mm512_mask_expand_epi8(__m512i s, __mmask64 k, __m512i a)
__m512i _mm512_maskz_expand_epi8(__mmask64 k, __m512i a)
__m512i _mm512_mask_expandloadu_epi8(__m512i s, __mmask64 k, void* p)
__m512i _mm512_maskz_expandloadu_epi8(__mmask64 k, void* p)

If each bit of (2) is set, the corresponding element of (3) is copied from (1), taken one by one from the lowest element.
If corresponding bit of (2) is not set, (3) element is:
  zero cleared if {z} is specified (_maskz_ intrinsic is used)
  left unchanged if {z} is not specified. (copied from s if _mask_ intrinsic is used.)

x86/x64 SIMD Instruction List  Feedback