0
我想弄清楚爲什麼gcc 4.9.0不會矢量化一個簡單的數組添加使用gcc 4.9.0時,使用-O -ftree-vectorize:cilk加陣列表示法沒有用gcc矢量化4.9.0
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
循環的向量化工作正常。
謝謝,我安裝的V 6.1,它工作正常。感到驚訝的是,它最近花了這個工作的一個版本。 –