Freigeben über


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 Genauigkeit

  • d
    Gleitkommawert mit doppelter Genauigkeit

  • i128
    Ganze 128-Bit-Zahl mit Vorzeichen

  • i64
    64-Bit-Ganzzahl mit Vorzeichen

  • u64
    Vorzeichenlose 64-Bit-Ganzzahl

  • i32
    Ganze 32-Bit-Zahl mit Vorzeichen

  • u32
    Vorzeichenlose 32-Bit-Ganzzahl

  • i16
    Ganze 16-Bit-Zahl mit Vorzeichen

  • u16
    Ganze 16-Bit-Zahl ohne Vorzeichen

  • i8
    Ganze 8-Bit-Zahl mit Vorzeichen

  • u8
    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:

Grafik zum XMM-Register

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

Siehe auch

Referenz

Intel-Übersicht neuer Anweisungen und von Erweiterungen