In the x86 assembly programming language
is the name for a specific action performable by modern x86 processors
with 3rd-generation Streaming SIMD Extensions (SSE3)
. This action involves copying a number to temporary space in the processor for use in other computations.
Specifically, MOVDDUP causes one, double-precision, floating-point source to be copied to both the lower half and upper half of an XMM register.
|| Assembly (Intel syntax)
|| Assembly (AT&T syntax)
|| icc intrinsic equivalent(s)
|| gcc built-in(s) |
| F2 0F 12 /r
|| MOVDDUP xmm1, xmm2/m64
|| MOVDDUP xmm2/m64, xmm1
__m128d _mm_movedup_pd(__m128d a)
__m128d _mm_loaddup_pd(const double *dp)
The source operand can be either an XMM register (xmm2) or a memory address (m64). When the source operand is an XMM register, the lower half of the register is used in the operation. When the source operand is a memory address, it is assumed to be the address of an 8-byte region, the value at which is used in the operation.
The destination operand must be an XMM register (xmm1).
- gcc info page.
- Intel 64 and IA-32 Architectures Software Developer's Manual Volume 2A: Instruction Set Reference, A-M, November, 2006.
x86 instruction listings