https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108950
--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by Richard Biener <rgue...@gcc.gnu.org>: https://gcc.gnu.org/g:d4cbcb9e45c6d45cdbc15583e1a418c13150d8c7 commit r11-10752-gd4cbcb9e45c6d45cdbc15583e1a418c13150d8c7 Author: Richard Biener <rguent...@suse.de> Date: Tue Feb 28 15:34:27 2023 +0100 tree-optimization/108950 - widen-sum reduction ICE When we end up with a widen-sum with an invariant smaller operand the reduction code uses a wrong vector type for it, causing IL checking ICEs. The following fixes that and the inefficiency of using a widen-sum with a widenend invariant operand as well by actually performing the check the following comment wants. PR tree-optimization/108950 * tree-vect-patterns.c (vect_recog_widen_sum_pattern): Check oprnd0 is defined in the loop. * tree-vect-loop.c (vectorizable_reduction): Record all operands vector types, compute that of invariants and properly update their SLP nodes. * gcc.dg/vect/pr108950.c: New testcase. (cherry picked from commit e3837b6f6c28a1d2cea3a69efbda795ea3fb8816)