[英]Convert __m128d to double
我只是嘗試使用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
。 有沒有簡單的方法(或轉換功能)?
謝謝!
你應該使用double dot = _mm_cvtsd_f64(res)
。 這從128位寄存器中提取低64位雙精度值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.