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;