_mm512_alignr_epi8
Classification
AVX-512, Miscellaneous, CPUID Test: AVX512BW
Header File
Instruction
VPALIGNR zmm, zmm, zmm, imm8
Synopsis
_mm512_alignr_epi8(__m512i a, __m512i b, const int imm8);
Description
Concatenate pairs of 16-byte blocks in "a" and "b" into a 32-byte temporary result, shift the result right by "imm8" bytes, and store the low 16 bytes in "dst".
Operation
FOR j := 0 to 3
i := j*128
tmp[255:0] := ((a[i+127:i] << 128)[255:0] OR b[i+127:i]) >> (imm8*8)
dst[i+127:i] := tmp[127:0]
ENDFOR
dst[MAX:512] := 0