https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116010
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Last reconfirmed| |2025-01-24
Keywords|needs-bisection |missed-optimization
Ever confirmed|0 |1
Status|UNCONFIRMED |ASSIGNED
Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot
gnu.org
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> ---
-/home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/vect/vect-8.f90:384:39:
note: ***** Analysis succeeded with vector mode V4SI
+) -> dependence analysis failed
+/home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/vect/vect-8.f90:384:39:
missed: possible alias involving gather/scatter between space1.ex[_367] and
space1.vx[S.18_1529]
+/home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/vect/vect-8.f90:384:39:
missed: bad data dependence.
+/home/thiago.bauermann/src/gcc/gcc/testsuite/gfortran.dg/vect/vect-8.f90:384:39:
note: ***** Analysis failed with vector mode V4SI
so that's likely a side-effect of the dr_may_alias_p hunk
+ /* If dr_analyze_innermost failed to handle a component we are
+ possibly left with a non-base in which case we didn't analyze
+ a possible evolution of the base when analyzing a loop. */
+ else if (loop_nest
+ && (handled_component_p (addr_a) || handled_component_p (addr_b)))
+ {
causing
(compute_affine_dependence
ref_a: space1.ex[_367], stmt_a: _368 = space1.ex[_367];
ref_b: space1.vx[S.18_1529], stmt_b: space1.vx[S.18_1529] = _373;
-) -> no dependence
+) -> dependence analysis failed
the issue here is that we have a union here as well (space1), but the
bases in question, space1.ex and space1.vx, have no further evolution.
I have a patch that changes the number of vectorized loops from
27 to 28 (we currently expect 25 or 26 for aarch64). On x86-64 we also
go from 26 to 27.