_mm_cvtss_si64x
Microsoft-spezifisch
Generiert die erweiterte x64-Version der Convert Scalar Single Precision Floating Point Number in 64-Bit-Ganzzahl (cvtss2si
)-Anweisung.
Syntax
__int64 _mm_cvtss_si64x(
__m128 value
);
Parameter
value
[in] Eine __m128
Struktur, die Gleitkommawerte enthält.
Rückgabewert
Eine 64-Bit-Ganzzahl, das Ergebnis der Konvertierung des ersten Gleitkommawerts in eine ganze Zahl.
Anforderungen
Intrinsic | Aufbau |
---|---|
_mm_cvtss_si64x |
x64 |
Headerdatei<intrin.h>
Hinweise
Das erste Element des Strukturwerts wird in eine ganze Zahl konvertiert und zurückgegeben. Die Rundungssteuerelementbits in MXCSR werden verwendet, um das Rundungsverhalten zu bestimmen. Der Standardmäßige Rundungsmodus ist auf das nächste Gerundet und wird auf die gerade Zahl gerundet, wenn der Dezimalteil 0,5 ist. Da die __m128
Struktur ein XMM-Register darstellt, übernimmt das systeminterne System einen Wert aus dem XMM-Register und schreibt ihn in den Systemspeicher.
Diese Routine ist nur als systeminterne Funktion verfügbar.
Beispiel
// _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
Ende Microsoft-spezifisch