_mm_srav_epi16
Classification
AVX-512, Shift, CPUID Test: AVX512BW
Header File
immintrin.h
Instruction
VPSRAVW xmm, xmm, xmm
Synopsis
 _mm_srav_epi16(__m128i a, __m128i count);
Description
Shift packed 16-bit integers in "a" right by the amount specified by the corresponding element in "count" while shifting in sign bits, and store the results in "dst".
Operation
FOR j := 0 to 7
	i := j*16
	IF count[i+15:i] < 16
		dst[i+15:i] := SignExtend16(a[i+15:i] >> count[i+15:i])
	ELSE
		dst[i+15:i] := (a[i+15] ? 0xFFFF : 0)
	FI	
ENDFOR
dst[MAX:128] := 0