https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119286

--- Comment #4 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tamar Christina <tnfch...@gcc.gnu.org>:

https://gcc.gnu.org/g:28a5efd15695250003534abf91af3210e7a88921

commit r15-8294-g28a5efd15695250003534abf91af3210e7a88921
Author: Tamar Christina <tamar.christ...@arm.com>
Date:   Wed Mar 19 12:58:14 2025 +0000

    middle-end: update early-break tests for non-load-lanes targets [PR119286]

    Broadly speaking, these tests were failing because the BB limitation for
SLP'ing
    loads in an || in an early break makes the loads end up in different BBs
and so
    today we can't SLP them.  This results in load_lanes being required to
vectorize
    them because the alternative is loads with permutes which we don't allow.

    The original checks were only checking partial vectors, which ended up
working
    because e.g. Adv. SIMD isn't a partial vector target, so it failed, and SVE
was
    a partial vector target but also has load lanes so it passes.

    GCN however is a partial vector target without load lanes which makes the
tests
    fail.  As we require load_lanes for now, also check for them.

    Bootstrapped Regtested on aarch64-none-linux-gnu,
    arm-none-linux-gnueabihf, x86_64-pc-linux-gnu
    -m32, -m64 and no issues.

    Cross checked the failing cases on amdgcn-amdhsa
    and all pass now.

    gcc/testsuite/ChangeLog:

            PR target/119286
            * gcc.dg/vect/bb-slp-41.c: Add pragma novector.
            * gcc.dg/vect/vect-early-break_133_pfa11.c: Should never vectorize
today
            as indexes can be out of range.
            * gcc.dg/vect/vect-early-break_128.c: Require load_lanes as well.
            * gcc.dg/vect/vect-early-break_133_pfa10.c: Likewise.
            * gcc.dg/vect/vect-early-break_133_pfa8.c: Likewise.
            * gcc.dg/vect/vect-early-break_133_pfa9.c: Likewise.
            * gcc.dg/vect/vect-early-break_22.c: Likewise.
            * gcc.dg/vect/vect-early-break_26.c: Likewise.
            * gcc.dg/vect/vect-early-break_43.c: Likewise.
            * gcc.dg/vect/vect-early-break_44.c: Likewise.
            * gcc.dg/vect/vect-early-break_6.c: Likewise.
            * gcc.dg/vect/vect-early-break_56.c: Expect failures on group
misalign.

Reply via email to