_mm256_msubadd_ps
Visual Studio 2010 SP1 wird benötigt.
Microsoft-spezifisch
Generiert die FMA4 YMM-Anweisung vfmsubaddps, um eine abwechselnde einfach gerundete Gleitkomma-Multiplikations-Addition/Subtraktion seiner Quellen auszuführen.
__m256 _mm256_msubadd_ps (
__m256 src1,
__m256 src2,
__m256 src3
);
Parameter
[in] src1
Ein 256-Bit-Parameter, der acht 32-Bit-Gleitkommawerte enthält.[in] src2
Ein 256-Bit-Parameter, der acht 32-Bit-Gleitkommawerte enthält.[in] src3
Ein 256-Bit-Parameter, der acht 32-Bit-Gleitkommawerte enthält.
Rückgabewert
Ein 256-Bit-Ergebnis r, das acht 32-Bit-Gleitkommawerte enthält.
r[i] := src1[i] * src2[i] - src3[i]; // i even
r[i] := src1[i] * src2[i] + src3[i]; // i odd
Anforderungen
Intrinsisch |
Architektur |
---|---|
_mm256_msubadd_ps |
FMA4 |
Headerdatei <intrin.h>
Hinweise
Jeder der acht Gleitkommawerte mit einfacher Genauigkeit in src1 wird mit dem entsprechenden Wert in src2 multipliziert. Jeder gerade Quellwert von src3 wird mit seinem zugehörigen Produkt addiert, jeder ungerade Wert wird von seinem zugehörigen Produkt subtrahiert, und jedes Ergebnis wird im zugehörigen Wert im Ziel gespeichert. Jedes Addition-Subtraktion-Multiplikationspaar wird mit einer einzelnen abschließenden Rundung ausgeführt, als ob die Zwischenergebnisse mit unendlicher Genauigkeit berechnet wurden.
Die vfmsubaddps-Anweisung ist Teil der FMA4-Anweisungsfamilie. Bevor Sie diese systeminterne Funktion verwenden, müssen Sie sicherstellen, dass der Prozessor diese Anweisung unterstützt. Um die Hardwareunterstützung für diese Anweisung zu bestimmen, rufen Sie die systeminterne Funktion __cpuid mit InfoType = 0x80000001 auf, und prüfen Sie Bit 16 von CPUInfo[2] (ECX). Dieses Bit ist 1, wenn die Anweisung unterstützt wird, und andernfalls 0
Beispiel
#include <stdio.h>
#include <intrin.h>
int main()
{
__m256 a, b, c, d;
int i;
for (i = 0; i < 8; i++) {
a.m256_f32[i] = i;
b.m256_f32[i] = 2.;
c.m256_f32[i] = 3.;
}
d = _mm256_msubadd_ps(a, b, c);
for (i = 0; i < 8; i++) printf_s(" %.3f", d.m256_f32[i]);
printf_s("\n");
}
Siehe auch
Referenz
Weitere Ressourcen
In Visual Studio 2010 SP1 hinzugefügte systeminterne FMA4-Funktionen
Änderungsprotokoll
Datum |
Versionsgeschichte |
Grund |
---|---|---|
März 2011 |
Diesen Inhalt hinzugefügt. |
SP1-Funktionsänderung. |