_mm512_rolv_epi32
Classification
AVX-512, Shift, CPUID Test: AVX512F
Header File
Instruction
VPROLVD zmm, zmm, zmm
Synopsis
_mm512_rolv_epi32(__m512i a, __m512i b);
Description
Rotate the bits in each packed 32-bit integer in "a" to the left by the number of bits specified in the corresponding element of "b", and store the results in "dst".
Operation
DEFINE LEFT_ROTATE_DWORDS(src, count_src) {
count := count_src % 32
RETURN (src << count) OR (src >> (32 - count))
}
FOR j := 0 to 15
i := j*32
dst[i+31:i] := LEFT_ROTATE_DWORDS(a[i+31:i], b[i+31:i])
ENDFOR
dst[MAX:512] := 0