c++ - 在寄存器上加载 double 浮点值时出错?

标签 c++

我正在尝试使用内在函数学习一些操作,但是当我在寄存器上简单加载 double 值时,如下所示,它会出现内存访问冲突错误。我确信我犯了一些天真的错误。您能指出我的错误是什么吗?

double a[2] = {10,12};
double * poinTer = &a[0];
__m128d v = _mm_load_pd(poinTer);

谢谢!

最佳答案

传递给_mm_load_pd的地址必须是16字节对齐的。您需要采取措施确保确实如此。

关于c++ - 在寄存器上加载 double 浮点值时出错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27170368/

相关文章:

c++ - std::map 范围删除复杂度

c++ - 使用 Friend 类的构造函数

C++ - 将 RGB 一维数组转换为 OpenCV Mat 图像

c++ - MurmurHash3 是否可以生成高 32 位全为 0 的 64 位哈希?

c++ double & 用法

c++ - MFC 扩展库(GUI/控件)推荐

c++ - 关于STL的进展

c++ - 在 Visual Studio 2013 上使用 QT

c++ - 尝试使用欧拉定理打印前 5 个完美数字

c++ - 使用 count_if() 查找相同的字符串值