这是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可以成功输出。
有人可以告诉我如何解决这个问题吗?