Intel 253666-024US Manuel D’Utilisation

Page de 760
3-632 Vol. 2A
MOVHPD—Move High Packed Double-Precision Floating-Point Value
INSTRUCTION SET REFERENCE, A-M
MOVHPD—Move High Packed Double-Precision Floating-Point Value
Description
Moves a double-precision floating-point value from the source operand (second 
operand) to the destination operand (first operand). The source and destination 
operands can be an XMM register or a 64-bit memory location. This instruction allows 
a double-precision floating-point value to be moved to and from the high quadword 
of an XMM register and memory. It cannot be used for register to register or memory 
to memory moves. When the destination operand is an XMM register, the low quad-
word of the register remains unchanged.
In 64-bit mode, use of the REX.R prefix permits this instruction to access additional 
registers (XMM8-XMM15).
Operation
MOVHPD instruction for memory to XMM move:
DEST[127:64] ← SRC;
(* DEST[63:0] unchanged *)
MOVHPD instruction for XMM to memory move:
DEST ← SRC[127:64];
Intel C/C++ Compiler Intrinsic Equivalent
MOVHPD __m128d _mm_loadh_pd ( __m128d a, double *p)
MOVHPD void _mm_storeh_pd (double *p, __m128d a) 
SIMD Floating-Point Exceptions
None.
Opcode
Instruction
64-Bit 
Mode
Compat/
Leg Mode
Description
66 0F 16 /MOVHPD xmm
m64
Valid
Valid
Move double-precision floating-point 
value from m64 to high quadword of 
xmm.
66 0F 17 /MOVHPD m64
xmm
Valid
Valid
Move double-precision floating-point 
value from high quadword of xmm to 
m64.