_mm_cvtss_si64x
Específicos de Microsoft
Genera la versión extendida x64 de la instrucción Convertir número de punto flotante de precisión sencilla escalar en un entero de 64 bits (cvtss2si
).
Sintaxis
__int64 _mm_cvtss_si64x(
__m128 value
);
Parámetros
value
[in] Estructura __m128
que contiene valores de número de punto flotante.
Valor devuelto
Entero de 64 bits, resultado de la conversión del primer valor de número de punto flotante en un entero.
Requisitos
Intrinsic | Arquitectura |
---|---|
_mm_cvtss_si64x |
x64 |
Archivo de encabezado<intrin.h>
Comentarios
El primer elemento del valor de estructura se convierte en un entero y se devuelve. Los bits de control de redondeo en MXCSR se usan para determinar el comportamiento de redondeo. El modo de redondeo predeterminado es redondear al más cercano, redondeando al número par si la parte decimal es 0,5. Dado que la estructura __m128
representa un registro XMM, el intrínseco toma un valor del registro XMM y lo escribe en la memoria del sistema.
Esta rutina solo está disponible como función intrínseca.
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);
}
101
FIN de Específicos de Microsoft