Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Informationen
Das angeforderte Thema wird unten angezeigt. Es ist jedoch nicht in dieser Bibliothek vorhanden.
Es wird empfohlen, Visual Studio 2017 zu verwenden

__m64_mix1l, __m64_mix1r, __m64_mix2l, __m64_mix2r, __m64_mix4l, __m64_mix4r

[Diese Dokumentation ist nur eine Vorschau und wird in späteren Versionen ggf. geändert. Blank topics are included as placeholders.]

Microsoft-spezifisch

Andere Formen der Ausgabe desmixkombiniert werden (IPF) - Anweisung, die ein Ergebnis auf eine bestimmte Kombination von Bytes aus den beiden Operanden generiert.


          
__m64 __m64_mix1l( 
   __m64 a, 
   __m64 b 
);
__m64 __m64_mix1r( 
   __m64 a, 
   __m64 b 
);
__m64 __m64_mix2l( 
   __m64 a,
   __m64 b
);
__m64 __m64_mix2r( 
   __m64 a, 
   __m64 b 
);
__m64 __m64_mix4l( 
   __m64 a,
   __m64 b 
);
__m64 __m64_mix4r( 
   __m64 a, 
   __m64 b 
);
        

[in] a

Der erste Quellwert.

[in] b

Der Wert für Zweitlieferant.

Intrinsisch

Architektur

__m64_mix1l

IPF

__m64_mix1r

IPF

__m64_mix2l

IPF

__m64_mix2r

IPF

__m64_mix4l

IPF

__m64_mix4r

IPF

Headerdatei <intrin.h>

Die verschiedenen Formen der Anweisung geben die Art und Weise an, in der die Bytes angeordnet werden, um das Ergebnis zu bilden. Die Anweisungen variieren je nach der Anzahl der Bytes, die in den Blöcken kopiert werden und ob der linke oder rechte Block Blöcke für das Ergebnis jedes Paar ausgewählt ist.

Die Quellspalten in Blöcke aufgeteilt werden als Zeichenfolgenparameter Größe 1, 2 oder 4 Bytes berücksichtigt, wie mit dem Namen das systeminterne angegeben. Benachbarte Quellblöcke werden in einem Paar höherer Ordnung (linken) und rechts (niederwertigeren) Member jedes Paar zusammengefasst.

Für die linkshändigen (L) gibt diese systeminternen Funktionen, wird das Ergebnis von links nach rechts folgendermaßen aufgebaut: jedes Paar aus aufeinander folgenden Blöcken im Ergebnis werden, indem Sie die linke Datenbindungsausdrücken eines Paars von a auswählt, gefolgt vom linken Rand der entsprechenden Paare von Datenbindungsausdrücken und formatiert bimmer von links nach rechts wählt Paare aus.

Für die rechtshändigen (L) gibt diese systeminternen Funktionen, wird das Ergebnis von links nach rechts folgendermaßen aufgebaut: jedes Paar aus aufeinander folgenden Blöcken im Ergebnis werden, indem der rechten a-Block eines Paars von auswählt, gefolgt vom rechten - Block der entsprechenden Paare von bgebildet und immer von links nach rechts wählt Paare aus.

// mix.cpp
// processor: IPF
#include <stdio.h>
#include <intrin.h>

#pragma intrinsic(__m64_mix1l, __m64_mix1r, __m64_mix2l)
#pragma intrinsic(__m64_mix2r, __m64_mix4l, __m64_mix4r)

void f(__m64 a, __m64 b)
{
    __m64 t;
    t = __m64_mix1l(a, b);
    printf_s("mix1l(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
    t = __m64_mix1r(a, b);
    printf_s("mix1r(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
    t = __m64_mix2l(a, b);
    printf_s("mix2l(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
    t = __m64_mix2r(a, b);
    printf_s("mix2r(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
    t = __m64_mix4l(a, b);
    printf_s("mix4l(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
    t = __m64_mix4r(a, b);
    printf_s("mix4r(0x%I64x, 0x%I64x) returns 0x%I64x\n",
             a.m64_u64, b.m64_u64, t.m64_u64);
}

int main()
{
    __m64 m, n;
    m.m64_u64 = -1;
    n.m64_u64 = 0;
   
    f(m, n);

    m.m64_u64 = 0x7766554433221100;
    n.m64_u64 = 0xFFEEDDCCBBAA9988;
   
    f(m, n);
}
          mix1l, 0xffffffffffffffff (0x0) gibt 0xff00ff00ff00ff00 zurück
mix1r, 0xffffffffffffffff (0x0) gibt 0xff00ff00ff00ff00 zurück
mix2l, 0xffffffffffffffff (0x0) gibt 0xffff0000ffff0000 zurück
mix2r, 0xffffffffffffffff (0x0) gibt 0xffff0000ffff0000 zurück
mix4l, 0xffffffffffffffff (0x0) gibt 0xffffffff00000000 zurück
mix4r, 0xffffffffffffffff (0x0) gibt 0xffffffff00000000 zurück
mix1l (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x77ff55dd33bb1199 zurück
mix1r (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x66ee44cc22aa0088 zurück
mix2l (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x7766ffee3322bbaa zurück
mix2r (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x5544ddcc11009988 zurück
mix4l (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x77665544ffeeddcc zurück
mix4r (0x7766554433221100, 0xffeeddccbbaa9988) gibt 0x33221100bbaa9988 zurück
        
Anzeigen: