_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 Architecture
_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

Consulte también

__m128d
Intrínsecos del compilador