_mm_sign_epi32
Classification
SSE_ALL, Arithmetic, CPUID Test: SSSE3
Header File
Instruction
PSIGND xmm, xmm
Synopsis
_mm_sign_epi32(__m128i a, __m128i b);
Description
Negate packed 32-bit integers in "a" when the corresponding signed 32-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 3
i := j*32
IF b[i+31:i] < 0
dst[i+31:i] := -(a[i+31:i])
ELSE IF b[i+31:i] == 0
dst[i+31:i] := 0
ELSE
dst[i+31:i] := a[i+31:i]
FI
ENDFOR