Partager via


_mm_cvtss_si64x

Section spécifique à Microsoft

Génère la version étendue x64 de l’instruction Convert Scalar Single Precision Floating Point Number to 64 bits Integer (cvtss2si).

Syntaxe

__int64 _mm_cvtss_si64x(
   __m128 value
);

Paramètres

valeur
[in] Structure __m128 contenant des valeurs à virgule flottante.

Valeur retournée

Entier 64 bits, résultat de la conversion de la première valeur à virgule flottante en entier.

Spécifications

Intrinsic Architecture
_mm_cvtss_si64x x64

Fichier<d’en-tête intrin.h>

Notes

Le premier élément de la valeur de structure est converti en entier et retourné. Les bits de contrôle d’arrondi dans MXCSR sont utilisés pour déterminer le comportement d’arrondi. Le mode d’arrondi par défaut est arrondi au plus proche, arrondi au nombre pair si la partie décimale est 0,5. Étant donné que la __m128 structure représente un registre XMM, l’intrinsèque prend une valeur du registre XMM et l’écrit dans la mémoire système.

Cette routine est disponible uniquement en tant qu'intrinsèque.

Exemple

// _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 la section spécifique à Microsoft

Voir aussi

__m128d
Intrinsèques du compilateur