gpt4 book ai didi

cilk 加数组表示法未使用 gcc 4.9.0 进行矢量化

转载 作者:行者123 更新时间:2023-11-30 16:58:02 24 4
gpt4 key购买 nike

我试图弄清楚为什么 gcc 4.9.0 在使用 gcc 4.9.0 时不会矢量化简单的数组加法,使用 -O -ftree-vectorize:

int a[256], b[256], c[256];
foo () {
int i;
a[:] = b[:] + c[:];
}

从生成的汇编器来看,这个循环尚未矢量化,并且使用 -fopt-info-vec-all 标志,我得到了很多输出,告诉我矢量化失败的原因,首先是:

>testvec.c:5: note: ===== analyze_loop_nest ===== 
>testvec.c:5: note: === vect_analyze_loop_form ===
>testvec.c:5: note: not vectorized: control flow in loop.
>testvec.c:5: note: bad loop form.

这令人费解,因为循环中没有控制流。使用标准数组表示法对 for 循环进行矢量化以进行相同的操作效果很好。

最佳答案

看起来只有最新版本的 GCC (6.1) 才能矢量化您的示例:

http://melpon.org/wandbox/permlink/LOIweYNRRLXeJsZf

关于cilk 加数组表示法未使用 gcc 4.9.0 进行矢量化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39131648/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com