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.