We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.


Microsoft Specific

Generates the movddup instruction.

__m128d _mm_loaddup_pd(
   const double* value

[in] value

The source data.




Intel SSE3

Header file <intrin.h>

The return value represents the XMM1 register, which will contain copies of the source data in both the upper and the lower halves of the register.

The _mm_loaddup_pd intrinsic loads the double-precision floating-point number value into the lower and upper halves of the XMM1 register, duplicating the value in both halves of the destination register.

// processor: x86 with SSE3
// Execute the loaddup_pd instruction using the intrinsic
// _mm_loaddup_pd 

#include <stdio.h>
#include <intrin.h>

#pragma intrinsic ( _mm_loaddup_pd )

int main( )
    __m128d w;
    double a = 314.1592653589793;
    printf_s("Calling _mm_loaddup_pd to load the value.\n");
    w = _mm_loaddup_pd ( &a );

    printf_s("Result: %e %e \n", w.m128d_f64[0], w.m128d_f64[1]);
Calling _mm_loaddup_pd to load the value.
Result: 3.141593e+002 3.141593e+002