https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101705
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |53947 --- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- SLP vectorization handles this and it even splits the groups and would use smaller groups for the tail but then it fails: t.i:244:10: note: === vect_slp_analyze_instance_alignment === t.i:244:10: missed: desired vector type conflicts with earlier one for _113 = s_129(D)->b113; t.i:244:10: note: removing SLP instance operations starting from: d_130(D)->b113 = _113; t.i:252:10: note: === vect_slp_analyze_instance_alignment === t.i:252:10: missed: desired vector type conflicts with earlier one for _121 = s_129(D)->b121; t.i:252:10: note: removing SLP instance operations starting from: d_130(D)->b121 = _121; t.i:256:10: note: === vect_slp_analyze_instance_alignment === t.i:256:10: missed: desired vector type conflicts with earlier one for _125 = s_129(D)->b125; t.i:256:10: note: removing SLP instance operations starting from: d_130(D)->b125 = _125; which is a pre-existing issue (and I think there's a duplicate for the vectorizer issue). Not sure what part Andrew wants to look at. Without vectorization we don't merge anything. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 [Bug 53947] [meta-bug] vectorizer missed-optimizations