Systeminterne Konventionen
[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]
Microsoft-spezifisch
Die systeminternen Funktionen verwenden die folgende Syntaxschreibweise konvention:
_mm_<intrin_op>_<suffix>
Dabei <intrin_op> den grundlegenden Vorgang des Intrinsics angibt (z. B. add für Addition und Subtraktion für sub ) und <suffix> bezeichnet den Typ der Daten gearbeitet von der Anweisung. Die erste Buchstabe jedes einen oder zwei Suffixes um anzugeben, ob die Daten gepacktes (P), Erweitert (epgepacktes) oder Skalar (S) ist.
Die übrigen Buchstaben geben den Typ:
s
Gleitkommawert mit einfacher Genauigkeitd
Gleitkommawert mit doppelter Genauigkeiti128
Ganze 128-Bit-Zahl mit Vorzeicheni64
64-Bit-Ganzzahl mit Vorzeichenu64
Vorzeichenlose 64-Bit-Ganzzahli32
Ganze 32-Bit-Zahl mit Vorzeichenu32
Vorzeichenlose 32-Bit-Ganzzahli16
Ganze 16-Bit-Zahl mit Vorzeichenu16
Ganze 16-Bit-Zahl ohne Vorzeicheni8
Ganze 8-Bit-Zahl mit Vorzeichenu8
Ganze 8-Bit-Zahl ohne Vorzeichen
Die gepackten Werte werden in der Reihenfolge von rechts nach links angezeigt, wenn der niedrigsten Wert für skalare Operationen verwendet wird. Betrachten Sie den folgenden Vorgang Beispiel:
double a[2] = {1.0, 2.0};
__m128d t = _mm_load_pd(a);
Das Ergebnis ist dasselbe wie ein beliebiger der folgenden Schritte aus:
__m128d t = _mm_set_pd(2.0, 1.0);
__m128d t = _mm_setr_pd(1.0, 2.0);
Das heißt, sucht das xmm Register, das den Wert t enthält, wie folgt:
Das skalare Element ist 1.0. Aufgrund der Art der Anweisung mehrere systeminterne Funktionen erfordern, deren Argumente, immediates (konstante integer-Literale).
Systeminterne Syntax
Im Folgenden wird die Syntax für jedes systeminterne Funktion:
data_type intrinsic_name (parameters)
Dabei data_type ist, ist der Datentyp zurückgeben (werden kann void, int, __m64, __m128, __m128doder __m128iund nur systeminterne _mm_empty gibt ungültiges) zurück, und intrinsic_name der Name des systeminternen (z. B. eine Funktion verhält, der im C/C++-Code anstelle des Inlinings die tatsächliche - Anweisung verwenden können).
Eine Tabelle in jedem Abschnitt enthält die systeminternen Namen und die entsprechende Anweisung. Eine ausführliche Beschreibung von dem systeminternen mit dem Prototyp des Intrinsics und ihre entsprechenden - Anweisung nach jeder Tabelle.
Microsoft ENDES bestimmten