horizontale Summe von 8 gepackten 32-Bit-Floats

Wenn ich 8 gepackte 32-Bit-Gleitkommazahlen habe (__m256), wie kann man am schnellsten die horizontale Summe aller 8 Elemente extrahieren? Wie erhält man das horizontale Maximum und Minimum? Mit anderen Worten, was ist die beste Implementierung für die folgenden C ++ - Funktionen?

float sum(__m256 x);  ///< returns sum of all 8 elements
float max(__m256 x);  ///< returns the maximum of all 8 elements
float min(__m256 x);  ///< returns the minimum of all 8 elements

Antworten auf die Frage(4)

Ihre Antwort auf die Frage