suma pozioma 8 upakowanych 32-bitowych pływaków
Jeśli mam 8 upakowanych 32-bitowych liczb zmiennoprzecinkowych (__m256
), jaki jest najszybszy sposób wyodrębnienia sumy poziomej wszystkich 8 elementów? Podobnie, jak uzyskać poziomy i minimalny poziom? Innymi słowy, jaka jest najlepsza implementacja dla następujących funkcji C ++?
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