Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

_mm_min_epu16

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

Microsoft-spezifisch

Gibt die Anweisung pminuwder Streaming SIMD-Erweiterungen 4 (SSE4) aus. Diese Anweisung wählt den kleineren Wert der beiden Parameter aus.


          
__m128i _mm_min_epu16( 
   __m128i a,
   __m128i b 
);
        
[in] a

Ein 128-Bit-Parameter, der acht 16-Bit-Ganzzahlen ohne Vorzeichen enthält.

[in] b

Ein 128-Bit-Parameter, der acht 16-Bit-Ganzzahlen ohne Vorzeichen enthält.

Ein 128-Bit-Parameter, der mit den folgenden Formeln definiert werden kann:

r0 := (a0 < b0) ? a0 : b0
r1 := (a1 < b1) ? a1 : b1
...
r7 := (a7 < b7) ? a7 : b7

Intrinsisch

Architektur

_mm_min_epu16

x86, x64

Headerdatei <smmintrin.h>

r0-r7, a0-a7und b0-b7 sind die Reihenfolge angeordneten 16-Bit-Komponenten des Rückgabewerts r und der Parameter a und b. r0, a0und b0 werden die am wenigsten signifikanten 16 Bit.

Bevor Sie diese systeminterne Software verwenden, muss sichergestellt, dass der Prozessor die Anweisung unterstützt.

#include <stdio.h>
#include <smmintrin.h>

int main ()
{
    __m128i a, b;

    a.m128i_u16[0] = 65535;
    a.m128i_u16[1] = 128;
    a.m128i_u16[2] = 128;
    a.m128i_u16[3] = 128;
    a.m128i_u16[4] = 17;
    a.m128i_u16[5] = 39000;
    a.m128i_u16[6] = 40000;
    a.m128i_u16[7] = 0;

    b.m128i_u16[0] = 65534;
    b.m128i_u16[1] = 0;
    b.m128i_u16[2] = 128;
    b.m128i_u16[3] = 129;
    b.m128i_u16[4] = 5740;
    b.m128i_u16[5] = 1;
    b.m128i_u16[6] = 45000;
    b.m128i_u16[7] = 0;

    __m128i res = _mm_min_epu16(a, b);

    printf_s("    a\t    b\t  res\n%5d\t%5d\t%5d\n%5d\t%5d\t%5d\n",
                a.m128i_u16[0], b.m128i_u16[0], res.m128i_u16[0],
                a.m128i_u16[1], b.m128i_u16[1], res.m128i_u16[1]);
    printf_s("%5d\t%5d\t%5d\n%5d\t%5d\t%5d\n%5d\t%5d\t%5d\n%5d\t%5d\t%5d\n",
                a.m128i_u16[2], b.m128i_u16[2], res.m128i_u16[2],
                a.m128i_u16[3], b.m128i_u16[3], res.m128i_u16[3],
                a.m128i_u16[4], b.m128i_u16[4], res.m128i_u16[4],
                a.m128i_u16[5], b.m128i_u16[5], res.m128i_u16[5]);
    printf_s("%5d\t%5d\t%5d\n%5d\t%5d\t%5d\n",
                a.m128i_u16[6], b.m128i_u16[6], res.m128i_u16[6],
                a.m128i_u16[7], b.m128i_u16[7], res.m128i_u16[7]);

    return 0;
}
              RES ein b
65535   65534   65534
  128       0       0
  128     128     128
  128     129     128
   17    5740      17
39000       1       1
40000   45000   40000
    0       0       0
        
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
© 2013 Microsoft. Alle Rechte vorbehalten.