我只是尝试使用SSE扩展,我开始使用简单的矢量点乘法.所以我写了下面的代码:
void SSE_vectormult(double * A, double * B)
{
    __m128d a;
    __m128d b;
    a = _mm_load_pd(A);
    b = _mm_load_pd(B);
    const int mask = 0xf1;
    __m128d res = _mm_dp_pd(a,b,mask);
    A = res;
}
用A和B相同长度的矢量.现在,我必须将结果转换__m128d回来double.有没有简单的方法(或转换功能)?
谢谢!
对应的load将是store[ ms,intel ].所以在你的情况下我猜(双精度,对齐指针,常规存储):
_mm_store_pd(A, res); //A = res;