3-525
INSTRUCTION SET REFERENCE
PMULHWPacked Multiply High
Description
This instruction multiplies the four signed words of the source operand (second operand) by the
four signed words of the destination operand (first operand), producing four signed, double-
word, intermediate results (refer to Figure 3-72). The high-order word of each intermediate
result is then written to its corresponding word location in the destination operand. The destina-
tion operand must be an MMX technology register; the source operand may be either an
MMX technology register or a 64-bit memory location.
Operation
DEST(15..0)
<
HighOrderWord(DEST(15..0)
?
SRC(15..0));
DEST(31..16)
<
HighOrderWord(DEST(31..16)
?
SRC(31..16));
DEST(47..32)
<
HighOrderWord(DEST(47..32)
?
SRC(47..32));
DEST(63..48)
<
HighOrderWord(DEST(63..48)
?
SRC(63..48));
Opcode
Instruction
Description
0F E5 /r
PMULHW mm,
mm/m64
Multiply the signed packed words in mm by the
signed packed words in mm/m64, then store the
high-order word of each doubleword result in mm.
Figure 3-72. Operation of the PMULHW Instruction
PMULHW mm, mm/m64
mm
mm/m64
mm
0111000111000111
1000000000000000
1100011100011100
0111000111000111
0000010000000000
0000000111000111
High Order
High Order
High OrderHigh Order
3006022
*
*
*
*