_mm_cvtss_si64x
Específicos de Microsoft
Genera x64 extendidas versión de número de Punto Flotante de precisión sencilla de Scalar convert a la instrucción entera de 64 bits (decvtss2si).
__int64 _mm_cvtss_si64x(
__m128 value
);
Parámetros
- [in] value
Una estructura de __m128 que contiene punto-valores de punto flotante.
Valor devuelto
Un entero de 64 bits, el resultado de la conversión del primer valor de punto flotante a un entero.
Requisitos
Intrínseco |
Arquitectura |
---|---|
_mm_cvtss_si64x |
x64 |
Archivo de encabezado <intrin.h>
Comentarios
El primer elemento del valor de la estructura se convierte a un entero y devuelto. Los bits del control que redondean en MXCSR se utilizan para determinar el comportamiento de redondeo. El modo de redondeo predeterminado es alrededor cercana, se producían el número par si la parte decimal es 0,5. Dado que la estructura de __m128 representa un registro de XMM, este intrínseco contiene un valor de registro y de escrituras de XMM él la memoria del sistema.
Esta rutina sólo está disponible como intrínseco.
Ejemplo
// _mm_cvtss_si64x.cpp
// processor: x64
#include <intrin.h>
#include <stdio.h>
#pragma intrinsic(_mm_cvtss_si64x)
int main()
{
__m128 a;
__int64 b = 54;
// _mm_load_ps requires an aligned buffer.
__declspec(align(16)) float af[4] =
{ 101.25, 200.75, 300.5, 400.5 };
// Load a with the floating point values.
// The values will be copied to the XMM registers.
a = _mm_load_ps(af);
// Extract the first element of a and convert to an integer
b = _mm_cvtss_si64x(a);
printf_s("%I64d\n", b);
}