https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110740
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Kewen Lin <li...@gcc.gnu.org>: https://gcc.gnu.org/g:d07504725973ccdec78929a09dc13e5ebd9472f6 commit r14-2736-gd07504725973ccdec78929a09dc13e5ebd9472f6 Author: Kewen Lin <li...@linux.ibm.com> Date: Mon Jul 24 01:20:30 2023 -0500 vect: Don't vectorize a single scalar iteration loop [PR110740] The function vect_update_epilogue_niters which has been removed by r14-2281 has some code taking care of that if there is only one scalar iteration left for epilogue then we won't try to vectorize it any more. Although costing should be able to care about it eventually, I think we still want this special casing without costing enabled, so this patch is to add it back in function vect_analyze_loop_costing, and make it more general for both main and epilogue loops as Richi suggested, it can fix some exposed failures on Power10: - gcc.target/powerpc/p9-vec-length-epil-{1,8}.c - gcc.dg/vect/slp-perm-{1,5,6,7}.c PR tree-optimization/110740 gcc/ChangeLog: * tree-vect-loop.cc (vect_analyze_loop_costing): Do not vectorize a loop with a single scalar iteration.