https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105940
--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-12 branch has been updated by Kewen Lin <li...@gcc.gnu.org>: https://gcc.gnu.org/g:bb1a6d92989a50df13b1a21085c86625089c9e53 commit r12-8505-gbb1a6d92989a50df13b1a21085c86625089c9e53 Author: Richard Sandiford <richard.sandif...@arm.com> Date: Wed Jun 15 11:12:51 2022 +0100 aarch64: Revert bogus fix for PR105254 In f2ebf2d98efe0ac2314b58cf474f44cb8ebd5244 I'd forced the chosen unroll factor to be a factor of the VF, in order to work around an exact_div ICE in PR105254. This was completely bogus -- clearly I didn't look in enough detail at why we ended up with an unrolled VF that wasn't a multiple of the UF. Kewen has since fixed the bug properly for PR105940, so this patch reverts my earlier attempt. Sorry for the stupidity. gcc/ PR tree-optimization/105254 PR tree-optimization/105940 Revert: * config/aarch64/aarch64.cc (aarch64_vector_costs::determine_suggested_unroll_factor): Take a loop_vec_info as argument. Restrict the unroll factor to values that divide the VF. (aarch64_vector_costs::finish_cost): Update call accordingly. gcc/testsuite/ * gcc.target/aarch64/sve/cost_model_14.c: New test. (cherry picked from commit 2636660b6f35423e0cfbf53bfad5c5fed6ae6471)