http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46032
--- Comment #5 from vincenzo Innocente <vincenzo.innocente at cern dot ch> 2011-07-26 13:00:18 UTC --- in case anybody wandering it seems fixed in Using built-in specs. COLLECT_GCC=c++ COLLECT_LTO_WRAPPER=/afs/cern.ch/user/i/innocent/w2/libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: ./configure --prefix=/afs/cern.ch/user/i/innocent/w2 --enable-languages=c,c++,fortran -enable-gold=yes --enable-lto --with-build-config=bootstrap-lto --with-gmp-lib=/usr/local/lib64 --with-mpfr-lib=/usr/local/lib64 -with-mpc-lib=/usr/local/lib64 --enable-cloog-backend=isl --with-cloog=/usr/local --with-ppl-lib=/usr/local/lib64 CFLAGS='-O2 -ftree-vectorize -fPIC' CXXFLAGS='-O2 -fPIC -ftree-vectorize -fvisibility-inlines-hidden' Thread model: posix gcc version 4.7.0 20110725 (experimental) (GCC) c++ -std=gnu++0x -DNDEBUG -Wall -Ofast -mavx openmpvector.cpp -ftree-vectorizer-verbose=7 -fopenmp openmpvector.cpp:11: note: versioning for alias required: can't determine dependence between *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: mark for run-time aliasing test between *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: versioning for alias required: can't determine dependence between .omp_data_i_14(D)->coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: mark for run-time aliasing test between .omp_data_i_14(D)->coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: Unknown alignment for access: *pretmp.11_32 openmpvector.cpp:11: note: Unknown alignment for access: *pretmp.11_34 openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: Vectorizing an unaligned access. openmpvector.cpp:11: note: vect_model_load_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_load_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_load_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_load_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_simple_cost: inside_cost = 1, outside_cost = 0 . openmpvector.cpp:11: note: vect_model_store_cost: unaligned supported by hardware. openmpvector.cpp:11: note: vect_model_store_cost: inside_cost = 2, outside_cost = 0 . openmpvector.cpp:11: note: cost model: Adding cost of checks for loop versioning aliasing. openmpvector.cpp:11: note: cost model: epilogue peel iters set to vf/2 because loop iterations are unknown . openmpvector.cpp:11: note: Cost model analysis: Vector inside of loop cost: 7 Vector outside of loop cost: 19 Scalar iteration cost: 4 Scalar outside cost: 1 prologue iterations: 0 epilogue iterations: 2 Calculated minimum iters for profitability: 7 openmpvector.cpp:11: note: Profitability threshold = 6 openmpvector.cpp:11: note: Profitability threshold is 6 loop iterations. openmpvector.cpp:11: note: create runtime check for data references *pretmp.11_32[idx_3] and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: create runtime check for data references .omp_data_i_14(D)->coeff and *pretmp.11_34[idx_3] openmpvector.cpp:11: note: created 2 versioning for alias checks. openmpvector.cpp:11: note: LOOP VECTORIZED. openmpvector.cpp:9: note: vectorized 1 loops in function. graphite breaks it…. c++ -std=gnu++0x -DNDEBUG -Wall -Ofast -mavx openmpvector.cpp -ftree-vectorizer-verbose=7 -fopenmp -fgraphite -fgraphite-identity -floop-block -floop-flatten -floop-interchange -floop-strip-mine -ftree-loop-linear -floop-parallelize-all openmpvector.cpp:9: note: not vectorized: data ref analysis failed D.2372_47 = *pretmp.11_32[D.2403_49]; openmpvector.cpp:9: note: vectorized 0 loops in function.