https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119286
Tamar Christina <tnfchris at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2025-03-17 Ever confirmed|0 |1 Component|target |testsuite --- Comment #2 from Tamar Christina <tnfchris at gcc dot gnu.org> --- (In reply to Thomas Schwinge from comment #1) > (In reply to Thomas Schwinge from comment #0) > > I found commit r15-7886-g2427793af1e545506e0315f8ec06adf73d76b3cc > > "middle-end: delay checking for alignment to load [PR118464]" responsible > > for a number of GCN target (tested '-march=gfx908') regressions (or new > > FAILs for the new test cases): [...] > > ..., and similarly -- but not identical! -- for '-march=gfx1100': Only difference is this one.. > > PASS: gcc.dg/vect/vect-early-break_18.c (test for excess errors) > [-PASS:-]{+FAIL:+} gcc.dg/vect/vect-early-break_18.c > [-scan-tree-dump-]{+scan-tree-dump-not+} vect "LOOP VECTORIZED" > .. which is an interesting one, as the GCN target doesn't support load lanes, so the testcase is expected to fail, other targets create a permuted load here which we then then reject. This GCN arch instead doesn't seem to support the permuted loads either, so the vectorizer tries a gather/scatter. But the indices aren't supported by the target, so instead the vectorizer scalarizes the loads. So the failure conditions are a bit unique.. I'm surprised the target's costing didn't reject such a large scalarization though. (it creates 64 scalar loads to then form a vector from them). I'm not yet sure how to best check for this... It might be easier to find a new testcase.