_mm_movedup_pd
Microsoft Specific
Generates the movddup instruction.
__m128d _mm_movedup_pd(
__m128d value
);
Parameters
- [in] value
The source data.
Requirements
Intrinsic |
Architecture |
---|---|
_mm_movedup_pd |
Intel SSE3 |
Header file <intrin.h>
Remarks
The _mm_movedup_pd intrinsic moves the double-precision 64-bit value in the lower half of the source operand (memory or XMM register) value into the lower and upper halves of an XMM register, duplicating the value in both halves of the destination register.
Example
// processor: x86 with SSE3
// Execute the moveduppd instruction using the intrinsic
// _mm_movedup_pd
#include <stdio.h>
#include <intrin.h>
#pragma intrinsic ( _mm_movedup_pd )
int main( )
{
__m128d u, w;
__declspec(align(16)) double a[2] = { 0.1, 0.2 };
// Load the array a into an XMM register.
u = _mm_load_pd( a );
printf_s("Calling _mm_movedup_pd to load the value.\n");
w = _mm_movedup_pd ( u );
printf_s("Result: %e %e \n", w.m128d_f64[0], w.m128d_f64[1]);
}
Calling _mm_movedup_pd to load the value.
Result: 1.000000e-001 1.000000e-001