<<<    Index    >>>
3-505
INSTRUCTION SET REFERENCE
PMADDWD—Packed Multiply and Add
Description
This instruction multiplies the individual signed words of the destination operand by the corre-
sponding signed words of the source operand, producing four signed, doubleword results (refer
to Figure 3-65). The two doubleword results from the multiplication of the high-order words are
added together and stored in the upper doubleword of the destination operand; the two double-
word results from the multiplication of the low-order words are added together and stored in the
lower doubleword of the destination operand. The destination operand must be an MMX™ tech-
nology register; the source operand may be either an MMX™ technology register or a 64-bit
memory location.
The PMADDWD instruction wraps around to 80000000H only when all four words of both the
source and destination operands are 8000H.
Operation
DEST(31..0) 
<
 (DEST(15..0) 
?
 SRC(15..0)) + (DEST(31..16) 
?
 SRC(31..16));
DEST(63..32) 
<
 (DEST(47..32) 
?
 SRC(47..32)) + (DEST(63..48) 
?
 SRC(63..48));
Opcode
Instruction
Description
0F F5 /r
PMADDWD mm, 
mm/m64
Multiply the packed words in mm by the packed 
words in mm/m64. Add the 32-bit pairs of results 
and store in mm as doubleword
Figure 3-65.  Operation of the PMADDWD Instruction
?
?
?
?
0111000111000111
0111000111000111
10000000000000000000010000000000
11001000111000111001110000000000
+
+
mm
PMADDWD mm, mm/m64
mm/m64
mm
<<<    Index    >>>