使用新关键字

时间:2017-08-16 15:07:15

标签: c++ simd avx

我试图使用带有新关键字的SIMD成员初始化C ++对象。这是我的代码:

#include <immintrin.h>

class simd_obj {
protected:
    // float a;
    __m256 a;
public:
    simd_obj(float f) {
        // a = f;
        a = _mm256_set1_ps(f);
    }
};

int main() {
    simd_obj* a = new simd_obj(1.3);
    return 0;
}

可以使用带有-mavx标志的g ++ 5.3.0在Windows 7中编译(通过mingw)。但是,当它运行时,它会崩溃。 当我将a的类型更改为float并使用简单的赋值(请参阅注释行)时,它正如预期的那样运行良好。 此外,当我将初始化更改为simd_obj a(1.3)时,即使__m256类型为a,也可以正常运行。

你知道为什么上面的代码不起作用吗?

0 个答案:

没有答案