2

这是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 中运行此代码时,或操作将中断。

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

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

4

0 回答 0