From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

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.


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[edit]


  • gcc info page.
  • Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, November, 2006.

See also[edit]

x86 instruction listings