2011-10-15 13 views

答えて

8

ほとんどのGCCスイッチは、動作を無効にするために接頭辞noとともに使用できます。 -fno-tree-vectorize(コマンドラインで-O3の後)を試してください。例えば

0

優れているので、gccはベクトル化でより積極的になりました。場合

extern "C" __attribute__((optimize("no-tree-vectorize"))) 
/* Subroutine */ 
int s111_ (integer * ntimes, integer * ld, integer * n, 
      real * ctime, real * dtime, 
      real * __restrict a, real * b, real * c__, real * d__, 
      real * e, real * aa, real * bb, real * cc) 
{ 
    .... 
    for (i__ = 2; i__ <= i__2; i__ += 2) 
     a[i__] = a[i__ - 1] + b[i__]; 
    .... 

仕事をするために使用されるrestrictの除去、上記の投稿が、今G ++ 6.0は__restrictを除去することにより、ベクトル化から停止することはできません。

関連する問題