SSE2
/ SIMD
是否可以将__m128
值(4 float
)存储到double
的数组中?
我需要从以下代码切换:
double *pC = c[voiceIndex];
__m128d v_result;
_mm_store_pd(pC, v_result);
对此:
double *pC = c[voiceIndex];
__m128 v_result_float;
_mm_store_ps(pC, v_result_float);
除了不进行4个32位float
的128位存储之外,我需要将它们转换为double
。
我无法更改“源” pC
数组(即double
)
答案 0 :(得分:3)
从本质上讲,这是your previous question的反问题。在这种情况下,您需要先将高位词ReportsBloc(){
fetchAllReports();
allReports = _allReports.stream;
}
(movhlps
)转换为低位词,然后再转换下半部分:
_mm_movelh_ps