title: MOVHPD
text: # MOVHPD
  
  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.
  
  