_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