_mm_mask_bitshuffle_epi64_mask
Classification
AVX-512, Bit Manipulation, CPUID Test: AVX512_BITALG
Header File
Instruction
VPSHUFBITQMB k {k}, xmm, xmm
Synopsis
_mm_mask_bitshuffle_epi64_mask(__mmask16 k, __m128i b, __m128i c);
Description
Gather 64 bits from "b" using selection bits in "c". For each 64-bit element in "b", gather 8 bits from the 64-bit element in "b" at 8 bit position controlled by the 8 corresponding 8-bit elements of "c", and store the result in the corresponding 8-bit element of "dst" using zeromask "k" (elements are zeroed out when the corresponding mask bit is not set).
Operation
FOR i := 0 to 1 //Qword
FOR j := 0 to 7 // Byte
IF k[i*8+j]
m := c.qword[i].byte[j] & 0x3F
dst[i*8+j] := b.qword[i].bit[m]
ELSE
dst[i*8+j] := 0
FI
ENDFOR
ENDFOR
dst[MAX:16] := 0