3-574
INSTRUCTION SET REFERENCE
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ—Unpack High Packed
Data (Continued)
If the source operand is all zeroes, the result (stored in the destination operand) contains zero
extensions of the high-order data elements from the original value in the destination operand.
With the PUNPCKHBW instruction the high-order bytes are zero extended (that is, unpacked
into unsigned words), and with the PUNPCKHWD instruction, the high-order words are zero
extended (unpacked into unsigned doublewords).
Operation
IF instruction is PUNPCKHBW
THEN
DEST(7..0)
<
DEST(39..32);
DEST(15..8)
<
SRC(39..32);
DEST(23..16)
<
DEST(47..40);
DEST(31..24)
<
SRC(47..40);
DEST(39..32)
<
DEST(55..48);
DEST(47..40)
<
SRC(55..48);
DEST(55..48)
<
DEST(63..56);
DEST(63..56)
<
SRC(63..56);
ELSE IF instruction is PUNPCKHW
THEN
DEST(15..0)
<
DEST(47..32);
DEST(31..16)
<
SRC(47..32);
DEST(47..32)
<
DEST(63..48);
DEST(63..48)
<
SRC(63..48);
ELSE (* instruction is PUNPCKHDQ *)
DEST(31..0)
<
DEST(63..32)
DEST(63..32)
<
SRC(63..32);
FI;