In the x86 assembly programming language, MOVHPD is the name for a specific action performable by modern x86 processors with 2nd-generation Streaming SIMD Extensions (SSE2). This action involves either copying a number from memory to temporary space or copying a number from temporary space to memory.
Specifically, MOVHPD causes the value at an 8-byte memory region to be either copied to or assigned from the upper half of an XMM register.
Usage
Opcode | Assembly (Intel syntax) | Assembly (AT&T syntax) | icc intrinsic equivalent(s) | gcc built-in(s) |
---|---|---|---|---|
66 0F 16 /r |
MOVHPD xmm, m64 |
MOVHPD m64, xmm |
__m128d _mm_loadh_pd(__m128d a, double *dp) |
|
66 0F 17 /r |
MOVHPD m64, xmm |
MOVHPD xmm, m64 |
void _mm_storeh_pd(double *pd, __m128d a) |
The source operand can be either an XMM register (xmm
) or a memory address (m64
). When the source operand is an XMM register, the destination operand must be a memory address. When the source operand is a memory address, the destination operand must be an XMM register.
Note that the lower half of the XMM register is unaffected by this operation.
Potential exceptions
References
- gcc info page.
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, November, 2006.