我正在尝试编写一些 SSE 代码,但由于此错误而无法继续:
错误 C2664:“_mm_loadu_ps”:无法将参数 1 从“const __m128 *”转换为“const float *”
我必须加载未对齐的数据并转换为 __m128 才能使用 SSE 内在函数。我在网上搜索,但无法获得这项工作。这是我的代码:
const Matrix<T> mul_SSE (const Matrix<T>& m)const{
// ...
__m128 a = _mm_loadu_ps((__m128 const*)&m(0,0)); //<-Here's the error line
// ...
}
参数 m 是浮点矩阵。有什么建议吗?非常感谢!
附言。另外,如果我写__m128 a = _mm_loadu_ps((__m128*)&m(0,0));
它会给我同样的错误:
错误 C2664:“_mm_loadu_ps”:无法将参数 1 从“__m128 *”转换为“const float *”
已解决:正确的方法:
__m128 a = _mm_loadu_ps(&m(0,0));