03.03.2013 Views

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

Intel® Architecture Instruction Set Extensions Programming Reference

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

INSTRUCTION SET REFERENCE<br />

PSIGNB/PSIGNW/PSIGND — Packed SIGN<br />

Opcode/<br />

<strong>Instruction</strong><br />

Description<br />

Op/<br />

En<br />

64/32<br />

-bit<br />

Mode<br />

CPUID<br />

Feature<br />

Flag<br />

Description<br />

66 0F 38 08 /r A V/V SSSE3 Negate packed byte integers in xmm1 if the corresponding sign in<br />

xmm2/m128 is less than zero.<br />

PSIGNB xmm1, xmm2/m128<br />

66 0F 38 09 /r A V/V SSSE3 Negate packed 16-bit integers in xmm1 if the corresponding sign<br />

in xmm2/m128 is less than zero.<br />

PSIGNW xmm1, xmm2/m128<br />

66 0F 38 0A /r A V/V SSSE3 Negate packed doubleword integers in xmm1 if the corresponding<br />

sign in xmm2/m128 is less than zero.<br />

PSIGND xmm1, xmm2/m128<br />

VEX.NDS.128.66.0F38.WIG 08 /r B V/V AVX Negate packed byte integers in xmm2 if the corresponding sign in<br />

xmm3/m128 is less than zero.<br />

VPSIGNB xmm1, xmm2,<br />

xmm3/m128<br />

VEX.NDS.128.66.0F38.WIG 09 /r B V/V AVX Negate packed 16-bit integers in xmm2 if the corresponding sign<br />

in xmm3/m128 is less than zero.<br />

VPSIGNW xmm1, xmm2,<br />

xmm3/m128<br />

VEX.NDS.128.66.0F38.WIG 0A /r B V/V AVX Negate packed doubleword integers in xmm2 if the corresponding<br />

sign in xmm3/m128 is less than zero.<br />

VPSIGND xmm1, xmm2,<br />

xmm3/m128<br />

VEX.NDS.256.66.0F38.WIG 08 /r B V/V AVX2 Negate packed byte integers in ymm2 if the corresponding sign in<br />

ymm3/m256 is less than zero.<br />

VPSIGNB ymm1, ymm2,<br />

ymm3/m256<br />

VEX.NDS.256.66.0F38.WIG 09 /r B V/V AVX2 Negate packed 16-bit integers in ymm2 if the corresponding sign<br />

in ymm3/m256 is less than zero.<br />

VPSIGNW ymm1, ymm2,<br />

ymm3/m256<br />

VEX.NDS.256.66.0F38.WIG 0A /r B V/V AVX2 Negate packed doubleword integers in ymm2 if the corresponding<br />

sign in ymm3/m256 is less than zero.<br />

VPSIGND ymm1, ymm2,<br />

ymm3/m256<br />

<strong>Instruction</strong> Operand Encoding<br />

Op/En Operand 1 Operand 2 Operand 3 Operand 4<br />

A ModRM:reg (r, w) ModRM:r/m (r) NA NA<br />

B ModRM:reg (w) VEX.vvvv ModRM:r/m (r) NA<br />

(V)PSIGNB/(V)PSIGNW/(V)PSIGND negates each data element of the first source operand if the sign of the corresponding<br />

data element in the second source operand is less than zero. If the sign of a data element in the second<br />

source operand is positive, the corresponding data element in the first source operand is unchanged. If a data<br />

element in the second source operand is zero, the corresponding data element in the first source operand is set to<br />

zero.<br />

(V)PSIGNB operates on signed bytes. (V)PSIGNW operates on 16-bit signed words. (V)PSIGND operates on signed<br />

32-bit integers.<br />

Legacy SSE instructions: In 64-bit mode use the REX prefix to access additional registers.<br />

5-128 Ref. # 319433-014

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!