ttの日記: lame4.0+gcc4.0 (ベクトル化編)
日記 by
tt
-ftree-vectorize -ftree-vectorizer-verbose=5 なんてオプションをつけてコンパイルしてみる。
予想通り全然ベクトル化されてない(w
stmtって、ループでの合計とかだと思うんだけど、こいつが未サポートというのは辛い。
sum = 0;
for (i=0;i<100;i++)
sum += array[i];
なんてのにベクトル化が利かない。うーん。
あと、
for (band = -16; band < 0; band++)
samp[band] *= (FLOAT)-1.0;
ってのでも依存性が不明だとかいわれてベクトル化されない。in-placeの時の依存性解析が不足しているらしい。
for (band = -16; band < 0; band++)
out[band] = in[band]*(FLOAT)-1.0;
だとうまくいくんだけど(もちろんin,outがaliasingしてないとコンパイラが分かるように書く必要はある)。
うーむ。iccのベクトル化もまだまだだけど、gccはもっとまだまだか^^;;つらいのお。
lame4.0+gcc4.0 (ベクトル化編) More ログイン