_mm_cvtsi64x_sd

Microsoft Specific

Generates the Convert Double Word Integer to Scalar Double-Precision Floating-Point Value (cvtsi2sd) instruction.

__m128d _mm_cvtsi64x_sd( 
   __m128d a 
   __int64 b 
);

Parameters

  • [in] a
    An __m128d structure containing two double-precision floating-point values.

  • [in] b
    A 64-bit integer.

Return Value

An __m128d structure with the result of the conversion in the first position, and the second position copied from a.

Requirements

Intrinsic

Architecture

_mm_cvtsi64x_sd

AMD64

Header file <intrin.h>

Remarks

The result of the conversion is placed in the first element of the __m128d structure passed in as a, and the result is returned. The __m128d structure represents an XMM register, so this intrinsic allows the value b from system memory to be placed in an XMM register.

This routine is only available as an intrinsic.

Example

// _mm_cvtsi64x_sd.cpp
// processor: x64

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

#pragma intrinsic(_mm_cvtsi64x_sd)

int main()
{
    __m128d a;
    __int64 b = 117;

    double adbl[2] = { 1.8E6, 200.5 };

    // loads the double values into d
    // (moves data into the XMM registers)
    a = _mm_loadu_pd (adbl);

    // Copy b into the first element of a
    a = _mm_cvtsi64x_sd(a, b);

    printf_s("%lf %lf\n", a.m128d_f64[0], a.m128d_f64[1] );
}
117.000000 200.500000

See Also

Reference

__m128d

Compiler Intrinsics