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.

Reply via email to