从标量中减去矢量的内容

时间:2014-09-06 13:49:35

标签: c++ sse avx

我尝试通过不同SIMD架构的代码进行优化。计算以下内容的最佳方法是什么:

对于SSE:

float  s = something  
__m128 v = calculation result  

s -= v[0] + v[1] + v[2] + v[3]

目前我通过以下方式计算水平和:

__m128 sum = _mm_hadd_ps( v, v )  
       sum = _mm_hadd_ps( sum, sum )  

s -= _mm_cvtss_f32( sum )

是否可以进行一些很酷的优化?

0 个答案:

没有答案