VEXPANDQ - EXPAND Qword

VEXPANDQ xmm1{k1}{z}, xmm2/m128    (V5+VL
__m128i _mm_mask_expand_epi64(__m128i s, __mmask8 k, __m128i a)
__m128i _mm_maskz_expand_epi64(__mmask8 k, __m128i a)
__m128i _mm_mask_expandloadu_epi64(__m128i s, __mmask8 k, void* p)
__m128i _mm_maskz_expandloadu_epi64(__mmask8 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 correnponding 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.)
VEXPANDQ ymm1{k1}{z}, ymm2/m256    (V5+VL
__m256i _mm256_mask_expand_epi64(__m256i s, __mmask8 k, __m256i a)
__m256i _mm256_maskz_expand_epi64(__mmask8 k, __m256i a)
__m256i _mm256_mask_expandloadu_epi64(__m256i s, __mmask8 k, void* p)
__m256i _mm256_maskz_expandloadu_epi64(__mmask8 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 correnponding 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.)
VEXPANDQ zmm1{k1}{z}, zmm2/m512    (V5
__m512i _mm512_mask_expand_epi64(__m512i s, __mmask8 k, __m512i a)
__m512i _mm512_maskz_expand_epi64(__mmask8 k, __m512i a)
__m512i _mm512_mask_expandloadu_epi64(__m512i s, __mmask8 k, void* p)
__m512i _mm512_maskz_expandloadu_epi64(__mmask8 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 correnponding 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