如何使用SSE2添加到变量



如何"添加到";变量使用SSE2

我最近在C++中使用SSE2来优化一些数学函数,但在尝试添加到现有变量时遇到了问题。

我有一个函数,它可以引入这样的变量:

_m128d v1 {}; // Note: Global variable. 
_m128d v2 {}; // Note: Global variable. 
_mm_func& _mm_func::operator+=( const vector _mm0, const  vector _mm0 )
{
v1 += _mm0.v1; // <-- Problem...
v2 += _mm0.v2; // <-- Problem...
return *this;
}

但我找不到正确的内在名称。。。

我知道_mm_add_pd会简单地将变量添加在一起,但我找不到任何来源来解释我如何将其添加到(+=(变量中。

来源:https://www.cita.utoronto.ca/~merz/intel_c10b/main_cls/mergedProjects/intre_cls/common/

英特尔网站:https://software.intel.com/sites/landingpage/IntrinsicsGuide/.选择SSE2,Artithematic,你会得到半页的arithematic说明。您显然想要m128d添加,但问题是您需要指定如何组织这128位。它可以是从16x8到2x64的任何一个。+=不可能同时是所有这些。

不,不能添加128位。SSE2是矢量数学。

最新更新