https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69935
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- It FAILs FAIL: gcc.dg/vect/vect-aggressive-1.c -flto -ffat-lto-objects scan-tree-dump-ti mes vect "vectorized 1 loops" 1 because in __attribute__ ((noinline)) int foo (void) { int i, res = 0; #pragma omp simd safelen(8) for (i = 0; i < N; i++) { int t = a[i]; if (c[i] != 0) if (t != 100 & t > 5) res += 1; } return res; } we now sink the load from a[i] into the if (c[i]...) which confuses vectorization or rather if-conversion: t_5 = a[i_17]; tree could trap... (yeah, it misses very basic support for checking index evolution, niter and array bounds). It also seems to miscompile the fortran FE somehow as I get loads of Fortran testsuite FAILs of the sort in gfc_format_decoder, at fortran/error.c:937^M 0x6346ae gfc_format_decoder^M /space/rguenther/src/svn/trunk/gcc/fortran/error.c:937^M 0x1346a88 pp_format(pretty_printer*, text_info*)^M /space/rguenther/src/svn/trunk/gcc/pretty-print.c:633^M 0x1342548 diagnostic_report_diagnostic(diagnostic_context*, diagnostic_info*)^M /space/rguenther/src/svn/trunk/gcc/diagnostic.c:825^M 0x634537 gfc_error^M /space/rguenther/src/svn/trunk/gcc/fortran/error.c:1279^M (note the missing 'internal compiler error:') and /space/rguenther/src/svn/trunk/gcc/testsuite/gfortran.dg/coarray/poly_run_3.f90:6:6: Warning: Non-RECURSIVE procedure '__copy_MAIN___T' at (1) is possibly calling itself recursively. Declare it RECURSIVE or use '-frecursive'^M FAIL: gfortran.dg/coarray/poly_run_3.f90 -fcoarray=single -O2 -latomic (test for excess errors)