http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58462

            Bug ID: 58462
           Summary: gomp4: invalid controlling predicate for != (< is ok)
           Product: gcc
           Version: 4.9.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libgomp
          Assignee: unassigned at gcc dot gnu.org
          Reporter: vincenzo.innocente at cern dot ch
                CC: jakub at gcc dot gnu.org

took me years to learn and teach to use != instead of "<"….

float a[1024];
float b[1024];

void err() {
#pragma omp simd
  for (int i=0;i!=1024;++i) {
    a[i]=b[i];
  }

}

void ok() {
#pragma omp simd
  for (int i=0;i<1024;++i) {
    a[i]=b[i];
  }
}


c++ -std=c++11 -O2 -march=core-avx2 -S twoif.cc  -fopenmp
twoif.cc: In function ‘void err()’:
twoif.cc:7:3: error: invalid controlling predicate
   for (int i=0;i!=1024;++i) {
   ^
pb-d-128-141-131-26:vectorize innocent$ c++ -v
Using built-in specs.
COLLECT_GCC=c++
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-apple-darwin12.4.0/4.9.0/lto-wrapper
Target: x86_64-apple-darwin12.4.0
Configured with: ./configure --disable-multilib --disable-bootstrap
--enable-lto -disable-libitm --enable-languages=c,c++,fortran,lto
--disable-libsanitizer
Thread model: posix
gcc version 4.9.0 20130918 (experimental) (GCC)

Reply via email to