c++ - sse类型: Segmentation Fault的数组

标签 c++ sse sse2

今天我尝试初始化一个 sse 类型 __m128d 的数组。不幸的是,它不起作用——为什么?通常是否不可能创建 sse 类型的数组(因为它们是寄存器类型?)。以下代码在循环中的赋值处出现段错误。

__m128d* _buffers = new __m128d[32];
for(int i=0;i<32;i++)
    _buffers[i] = _mm_setzero_pd();

问候 + 繁荣

最佳答案

您必须使用 _mm_malloc() 或 _aligned_malloc(),具体取决于编译器上的首选函数名称。 __m128[di] 与 new 结合几乎总是不好的魔力。

关于c++ - sse类型: Segmentation Fault的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5217782/

相关文章:

assembly - 与内在函数等价的 SSE2 汇编是什么?

构造函数中的 C++ 模板参数

simd - FP 可以像 SSE2 _mm_cmpeq_pd 一样用于比较 64 位整数吗?

c++ - 具有快速查找功能的对象列表的数据结构

c++ - 将单个 float 移动到 xmm 寄存器

c++ - 我可以使用 SSE 指令仅存储 128 位中的 96 位吗?

c++ - Visual Studio 2010 和 SSE 4.2

c++ - visual studio 2012 中 Eigen 类型 vector 的自动向量化表现不佳

c++ - C++中 vector 上的未初始化局部变量错误

c++ - Intel TBB 使用task_group 进行双调排序