_mm_cvttss_si64x
Específicos de Microsoft
Emite la versión extendida x64 de la instrucción Convertir número de punto flotante de precisión sencilla con truncamiento en un entero de 64 bits (cvttss2si
).
Sintaxis
__int64 _mm_cvttss_si64x(
__m128 value
);
Parámetros
value
[in] Estructura __m128
que contiene valores de número de punto flotante de precisión sencilla.
Valor devuelto
Resultado de la conversión del primer valor de número de punto flotante en un entero de 64 bits.
Requisitos
Intrinsic | Arquitectura |
---|---|
_mm_cvttss_si64x |
x64 |
Archivo de encabezado<intrin.h>
Comentarios
El intrínseco difiere de _mm_cvtss_si64x
solo en que las conversiones inexactas se truncan hacia cero. Como la estructura __m128
representa un registro XMM, la instrucción generada mueve los datos de un registro XMM a la memoria del sistema.
Esta rutina solo está disponible como función intrínseca.
Ejemplo
// _mm_cvttss_si64x.cpp
// processor: x64
#include <intrin.h>
#include <stdio.h>
#pragma intrinsic(_mm_cvttss_si64x)
int main()
{
__m128 a;
__int64 b = 54;
// _mm_load_ps requires an aligned buffer.
__declspec(align(16)) float af[4] = { 101.5, 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_cvttss_si64x(a);
printf_s("%I64d\n", b);
}
101
FIN de Específicos de Microsoft