3-676 Vol. 2A MOVSHDUP—Move Packed Single-FP High and Duplicate
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[PPP
5(68/7
[PP
[PP
P
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
[PP>@
[PP
P>@
>@
>@ >@ >@ >@