_mm256_rolv_epi32
Classification
AVX-512, Shift, CPUID Test: AVX512F
Header File
Instruction
VPROLVD ymm, ymm, ymm
Synopsis
_mm256_rolv_epi32(__m256i a, __m256i 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 7
i := j*32
dst[i+31:i] := LEFT_ROTATE_DWORDS(a[i+31:i], b[i+31:i])
ENDFOR
dst[MAX:256] := 0