_mm_extract_ps

[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 extractpsder Streaming SIMD-Erweiterungen 4 (SSE4) aus. Diese Anweisung extrahiert eine ganze Zahl mit 32 Bit aus einem 128-Bit-Parameter.

int _mm_extract_ps( 
   __m128 a,
   const int ndx 
);

Parameter

  • [in] a
    Ein 128-Bit-Parameter, der vier 32-Bit-Gleitkommawerte enthält.

  • [in] ndx
    Ein konstanter Index, der den Speicherort des Werts angibt, die extrahiert werden soll.

Ergebniswert

Der Rückgabewert kann mit den folgenden Formeln ausgedrückt werden:

r := (ndx == 0) ? a0 :
  ((ndx == 1) ? a1 :
  ((ndx == 2) ? a2 : a3))

Anforderungen

Intrinsisch

Architektur

_mm_extract_ps

x86, x64

Headerdatei <smmintrin.h>

Hinweise

a0-a3 sind die einzigen 32-Bit-Gleitkommawerte im Parameter a, wenn a0 die niedrigsten 32 Bits belegt.

Nur die am wenigsten signifikanten Bits von zwei ndx verwendet werden.

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

Beispiel

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

int main ()
{
    __m128 a;
    const int ndx = 1;

    a.m128_f32[0] = 1.25;
    a.m128_f32[1] = -5.125;
    a.m128_f32[2] = 16.0;
    a.m128_f32[3] = 3.5;

    int res = _mm_extract_ps(a, ndx);
    // Note: These are printed out in hex format to easily identify that the float and corresponding
    //       integer value are identical
    printf_s("Result res should equal %x: %x\n", a.m128_u32[ndx], res);

    return 0;
}
          
        

Siehe auch

Referenz

Systeminterne Funktionen des Compilers