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

Vol. 2B 4-207
INSTRUCTION SET REFERENCE, N-Z
PUNPCKLBW/PUNPCKLWD/PUNPCKLDQ/PUNPCKLQDQ—
Unpack Low Data
Description
Unpacks and interleaves the low-order data elements (bytes, words, doublewords,
and quadwords) of the destination operand (first operand) and source operand
(second operand) into the destination operand. (Figure 4-12 shows the unpack oper-
ation for bytes in 64-bit operands.). The high-order data elements are ignored.
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
0F 60 /r PUNPCKLBW mm,
mm/m32
Valid Valid Interleave low-order bytes from
mm and mm/m32 into mm.
66 0F 60
/r
PUNPCKLBW xmm1,
xmm2/m128
Valid Valid Interleave low-order bytes from
xmm1 and xmm2/m128 into
xmm1.
0F 61 /r PUNPCKLWD mm,
mm/m32
Valid Valid Interleave low-order words from
mm and mm/m32 into mm.
66 0F 61
/r
PUNPCKLWD xmm1,
xmm2/m128
Valid Valid Interleave low-order words from
xmm1 and xmm2/m128 into
xmm1.
0F 62 /r PUNPCKLDQ mm,
mm/m32
Valid Valid Interleave low-order doublewords
from mm and mm/m32 into mm.
66 0F 62
/r
PUNPCKLDQ xmm1,
xmm2/m128
Valid Valid Interleave low-order doublewords
from xmm1 and xmm2/m128 into
xmm1.
66 0F 6C
/r
PUNPCKLQDQ
xmm1, xmm2/m128
Valid Valid Interleave low-order quadword
from xmm1 and xmm2/m128 into
xmm1 register.
Figure 4-12. PUNPCKLBW Instruction Operation Using 64-bit Operands
X0X3 X2 X1 Y0Y3 Y2 Y1
X0X3 X2 X1
Y0Y3 Y2 Y1
X4X7 X6 X5
Y4Y7 Y6 Y5
SRC
DEST
DEST