https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120517

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot 
gnu.org
             Status|UNCONFIRMED                 |ASSIGNED
   Target Milestone|---                         |16.0
   Last reconfirmed|                            |2025-06-03
           Keywords|                            |missed-optimization
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
The issue is we account for the element size twice.

I'm testing

diff --git a/gcc/tree-vect-data-refs.cc b/gcc/tree-vect-data-refs.cc
index f2deb751ed9..1792ee4ea05 100644
--- a/gcc/tree-vect-data-refs.cc
+++ b/gcc/tree-vect-data-refs.cc
@@ -3685,7 +3685,7 @@ vect_analyze_data_ref_accesses (vec_info *vinfo,
              /* For datarefs with big gap, it's better to split them into
different
                 groups.
                 .i.e a[0], a[1], a[2], .. a[7], a[100], a[101],..., a[107]  */
-             if ((unsigned HOST_WIDE_INT)(init_b - init_prev) * tree_to_uhwi
(szb)
+             if ((unsigned HOST_WIDE_INT)(init_b - init_prev)
                  > MAX_BITSIZE_MODE_ANY_MODE / BITS_PER_UNIT)
                break;

Reply via email to