_mm_rolv_epi64
Classification
AVX-512, Shift, CPUID Test: AVX512F
Header File
Instruction
VPROLVQ xmm, xmm, xmm
Synopsis
_mm_rolv_epi64(__m128i a, __m128i 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 1
i := j*64
dst[i+63:i] := LEFT_ROTATE_QWORDS(a[i+63:i], b[i+63:i])
ENDFOR
dst[MAX:128] := 0