【发布时间】:2013-05-30 03:05:26
【问题描述】:
我正在尝试编写一些 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 是一个浮点矩阵。 有什么建议吗?非常感谢!
ps。另外,如果我写 __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));
【问题讨论】:
标签: c++ floating-point type-conversion constants sse