_mm256_sign_epi16
Classification
AVX_ALL, Arithmetic, CPUID Test: AVX2
Header File
immintrin.h
Instruction
VPSIGNW ymm, ymm, ymm
Synopsis
 _mm256_sign_epi16(__m256i a, __m256i b);
Description
Negate packed signed 16-bit integers in "a" when the corresponding signed 16-bit integer in "b" is negative, and store the results in "dst". Element in "dst" are zeroed out when the corresponding element in "b" is zero.
Operation
FOR j := 0 to 15
	i := j*16
	IF b[i+15:i] < 0
		dst[i+15:i] := -(a[i+15:i])
	ELSE IF b[i+15:i] == 0
		dst[i+15:i] := 0
	ELSE
		dst[i+15:i] := a[i+15:i]
	FI
ENDFOR
dst[MAX:256] := 0