Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z
4-194 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
PSUBSB/PSUBSW—Subtract Packed Signed Integers with Signed
Saturation
Description
Performs a SIMD subtract of the packed signed integers of the source operand
(second operand) from the packed signed integers of the destination operand (first
operand), and stores the packed integer results in the destination operand. See
Figure 9-4 in the Intel
®
64 and IA-32 Architectures Software Developer’s Manual,
Volume 1, for an illustration of a SIMD operation. Overflow is handled with signed
saturation, as described in the following paragraphs.
These instructions can operate on either 64-bit or 128-bit operands. When operating
on 64-bit operands, the destination operand must be an MMX technology register
and the source operand can be either an MMX technology register or a 64-bit
memory location. When operating on 128-bit operands, the destination operand
must be an XMM register and the source operand can be either an XMM register or a
128-bit memory location.
The PSUBSB instruction subtracts packed signed byte integers. When an individual
byte result is beyond the range of a signed byte integer (that is, greater than 7FH or
less than 80H), the saturated value of 7FH or 80H, respectively, is written to the
destination operand.
The PSUBSW instruction subtracts packed signed word integers. When an individual
word result is beyond the range of a signed word integer (that is, greater than 7FFFH
or less than 8000H), the saturated value of 7FFFH or 8000H, respectively, is written
to the destination operand.
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
0F E8 /r PSUBSB mm,
mm/m64
Valid Valid Subtract signed packed bytes in
mm/m64 from signed packed
bytes in mm and saturate results.
66 0F E8
/r
PSUBSB xmm1,
xmm2/m128
Valid Valid Subtract packed signed byte
integers in xmm2/m128 from
packed signed byte integers in
xmm1 and saturate results.
0F E9 /r PSUBSW mm,
mm/m64
Valid Valid Subtract signed packed words in
mm/m64 from signed packed
words in mm and saturate results.
66 0F E9
/r
PSUBSW xmm1,
xmm2/m128
Valid Valid Subtract packed signed word
integers in xmm2/m128 from
packed signed word integers in
xmm1 and saturate results.