如何"添加到";变量使用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是矢量数学。