https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91934
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |needs-bisection --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Ah, OK, so the GCC 8 vectorizer result is definitely strange, for the unroll-and-jam variant it detects /home/toch/Projects/gcc83_problem/apply.c:6:9: note: === vect_detect_hybrid_slp === /home/toch/Projects/gcc83_problem/apply.c:6:9: note: === vect_update_vf_for_slp === /home/toch/Projects/gcc83_problem/apply.c:6:9: note: Loop contains SLP and non-SLP stmts /home/toch/Projects/gcc83_problem/apply.c:6:9: note: Updating vectorization factor to 8. /home/toch/Projects/gcc83_problem/apply.c:6:9: note: vectorization_factor = 8, niters = 200 which makes it go downhill. Maybe the fix can be bisected and backported (the GCC 9 branch is fine here). The key is the 'Loop contains SLP and non-SLP stmts' phrase in the -fdump-tree-vect-details dump.