2011-10-15 3 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을 제거하여 벡터화에서 중지 할 수 없습니다.

관련 문제