Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
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