如何编写编译器可以优化到SIMD比较的代码?

时间:2018-03-03 09:32:21

标签: c++ visual-c++ x86 simd auto-vectorization

std::array<int, 4> a = {1, 1, 1, 1};
std::array<int, 4> b = { 1, 2, 3, 4 };
std::array<int, 4> c;
bool res = false;
for (int i = 0; i < a.size(); i++) {
    a[i] = rand() % 10;
}

for (int i = 0; i < 4; i++) {
    c[i] = a[i] + b[i];
}

智能编译器可以很好地编译到SIMD上面。 但是如何编写如下的比较可以很好地编译成SIMD;

res = a[0] <= b[0] && a[1] <= b[1] && a[2] <= b[2] && a[3] <= b[3]; // not compile to SIMD

0 个答案:

没有答案