Visual Studio 2013中的AVX2指令中断

时间:2015-01-07 03:16:06

标签: c++ sse avx avx2

这是c ++代码:

#include <stdio.h>
#include <iostream>
#include <immintrin.h>
using namespace std;

int main(int argc, char* argv[]) {
    char a[100];

    for (int i = 0; i < 32; i++)
        a[i] = 1;

    for (int i = 32; i < 64; i++)
        a[i] = 0;

    __m256i x = _mm256_loadu_si256((__m256i *)(a));
    __m256i y = _mm256_loadu_si256((__m256i *)(a + 32));

    for (int i = 0; i < 32; i++)
        cout << (int)x.m256i_i8[i];
    cout << endl;

    for (int i = 0; i < 32; i++)
        cout << (int)y.m256i_i8[i];
    cout << endl;

    __m256i z = _mm256_xor_si256(x, y);

    for (int i = 0; i < 32; i++)
        cout << (int)z.m256i_i8[i];
    cout << endl;

    return 0;
}

当我在VS2013中运行此代码时, xor 操作将中断。

我认为我的cpu可以支持AVX2,因为x和y可以成功输出。

有人可以告诉我如何解决这个问题吗?

0 个答案:

没有答案