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

--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Lehua Ding <lh...@gcc.gnu.org>:

https://gcc.gnu.org/g:d13e59b86c5cbeec6135ada3f6dc983289cac610

commit r14-5748-gd13e59b86c5cbeec6135ada3f6dc983289cac610
Author: Juzhe-Zhong <juzhe.zh...@rivai.ai>
Date:   Wed Nov 22 11:27:52 2023 +0800

    RISC-V: Fix permutation indice mode bug

    This patch fixes following FAILs on zvl512b:
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-1.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-1.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-16.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-16.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-17.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-17.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-3.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-3.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-5.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-5.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-6.c execution test
    FAIL: gcc.target/riscv/rvv/autovec/partial/slp_run-6.c execution test

    The root cause is that we are using vrgather.vv on vector QI mode which
    is incorrect for zvl512b since it exceed 256.

    Instead, we should use vrgatherei16.vv

            PR target/112598

    gcc/ChangeLog:

            * config/riscv/riscv-v.cc (emit_vlmax_gather_insn): Adapt the
priority.
            (shuffle_generic_patterns): Fix permutation indice bug.
            * config/riscv/vector-iterators.md: Fix VEI16 bug.

    gcc/testsuite/ChangeLog:

            * gcc.target/riscv/rvv/autovec/pr112598-2.c: New test.

Reply via email to