Intel 64 and IA-32 Architectures Software Developers Manual Volume 2B, Instruction Set Reference, N-Z

4-202 Vol. 2B
INSTRUCTION SET REFERENCE, N-Z
PUNPCKHBW/PUNPCKHWD/PUNPCKHDQ/PUNPCKHQDQ— Unpack
High Data
Description
Unpacks and interleaves the high-order data elements (bytes, words, doublewords,
or quadwords) of the destination operand (first operand) and source operand
(second operand) into the destination operand. Figure 4-11 shows the unpack oper-
ation for bytes in 64-bit operands. The low-order data elements are ignored.
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
0F 68 /r PUNPCKHBW mm,
mm/m64
Valid Valid Unpack and interleave high-
order bytes from mm and
mm/m64 into mm.
66 0F 68
/r
PUNPCKHBW xmm1,
xmm2/m128
Valid Valid Unpack and interleave high-
order bytes from xmm1 and
xmm2/m128 into xmm1.
0F 69 /r PUNPCKHWD mm,
mm/m64
Valid Valid Unpack and interleave high-
order words from mm and
mm/m64 into mm.
66 0F 69
/r
PUNPCKHWD xmm1,
xmm2/m128
Valid Valid Unpack and interleave high-
order words from xmm1 and
xmm2/m128 into xmm1.
0F 6A /r PUNPCKHDQ mm,
mm/m64
Valid Valid Unpack and interleave high-
order doublewords from mm
and mm/m64 into mm.
66 0F 6A
/r
PUNPCKHDQ xmm1,
xmm2/m128
Valid Valid Unpack and interleave high-
order doublewords from xmm1
and xmm2/m128 into xmm1.
66 0F 6D
/r
PUNPCKHQDQ
xmm1,
xmm2/m128
Valid Valid Unpack and interleave high-
order quadwords from xmm1
and xmm2/m128 into xmm1.
Figure 4-11. PUNPCKHBW Instruction Operation Using 64-bit Operands
X4X7 X6 X5 Y4Y7 Y6 Y5
X0X3 X2 X1
Y0Y3 Y2 Y1
X4X7 X6 X5
Y4Y7 Y6 Y5
SRC
DEST
DEST