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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PHSUBSW — Packed Horizontal Subtract with Saturation<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 />

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

INSTRUCTION SET REFERENCE<br />

66 0F 38 07 /r A V/V SSSE3 Subtract 16-bit signed integer horizontally, pack saturated integers<br />

to xmm1.<br />

PHSUBSW xmm1, xmm2/m128<br />

VEX.NDS.128.66.0F38.WIG 07 /r B V/V AVX Subtract 16-bit signed integer horizontally, pack saturated integers<br />

to xmm1.<br />

VPHSUBSW xmm1, xmm2,<br />

xmm3/m128<br />

VEX.NDS.256.66.0F38.WIG 07 /r B V/V AVX2 Subtract 16-bit signed integer horizontally, pack saturated integers<br />

to ymm1.<br />

VPHSUBSW ymm1, ymm2,<br />

ymm3/m256<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)PHSUBSW performs horizontal subtraction on each adjacent pair of 16-bit signed integers by subtracting the<br />

most significant word from the least significant word of each pair in the second source and first source operands.<br />

The signed, saturated 16-bit results are packed to the destination operand. The destination and first source<br />

operand are XMM registers. The second operand can be an XMM register or a 128-bit memory location.<br />

128-bit Legacy SSE version: The first source and destination operands are XMM registers. The second source<br />

operand is an XMM register or a 128-bit memory location. Bits (255:128) of the corresponding YMM destination<br />

register remain unchanged.<br />

VEX.128 encoded version: The first source and destination operands are XMM registers. The second source<br />

operand is an XMM register or a 128-bit memory location. Bits (255:128) of the corresponding YMM register are<br />

zeroed.<br />

VEX.256 encoded version: The second source operand can be an YMM register or a 256-bit memory location. The<br />

first source and destination operands are YMM registers.<br />

Ref. # 319433-014 5-65

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

Saved successfully!

Ooh no, something went wrong!