Intel 64 and IA-32 Architectures Software Developers Manual Volume 2A, Instruction Set Reference, A-M

3-662 Vol. 2
INSTRUCTION SET REFERENCE, A-M
MOVSHDUP—Move Packed Single-FP High and Duplicate
Description
The linear address corresponds to the address of the least-significant byte of the
referenced memory data. When a memory address is indicated, the 16 bytes of data
at memory location m128 are loaded and the single-precision elements in positions 1
and 3 are duplicated. When the register-register form of this operation is used, the
same operation is performed but with data coming from the 128-bit source register.
See Figure 3-15.
In 64-bit mode, use of the REX prefix in the form of REX.R permits this instruction to
access additional registers (XMM8-XMM15).
Opcode Instruction
64-Bit
Mode
Compat/
Leg Mode Description
F3 0F 16
/r
MOVSHDUP xmm1,
xmm2/m128
Valid Valid Move two single-precision
floating-point values from the
higher 32-bit operand of each
qword in xmm2/m128 to xmm1
and duplicate each 32-bit operand
to the lower 32-bits of each
qword.
Figure 3-15. MOVSHDUP—Move Packed Single-FP High and Duplicate
20
0296+'83[PP[PPP
5(68/7
[PP
[PP
P
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
>@ >@ >@ >@