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)