_mm256_rolv_epi64
Classification
AVX-512, Shift, CPUID Test: AVX512F
Header File
Instruction
VPROLVQ ymm, ymm, ymm
Synopsis
_mm256_rolv_epi64(__m256i a, __m256i b);
Description
Rotate the bits in each packed 64-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_QWORDS(src, count_src) {
count := count_src % 64
RETURN (src << count) OR (src >> (64 - count))
}
FOR j := 0 to 3
i := j*64
dst[i+63:i] := LEFT_ROTATE_QWORDS(a[i+63:i], b[i+63:i])
ENDFOR
dst[MAX:256] := 0