如何将4 float的ps向量转换为4 double并存储到pd数组?

时间:2019-02-04 14:53:53

标签: c++ type-conversion simd sse2

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

1 个答案:

答案 0 :(得分:3)

从本质上讲,这是your previous question的反问题。在这种情况下,您需要先将高位词ReportsBloc(){ fetchAllReports(); allReports = _allReports.stream; } movhlps)转换为低位词,然后再转换下半部分:

_mm_movelh_ps