On 9/16/25 08:21, Raphael Moreira Zinsly wrote:
Changes since v1:
- Fixed permutations with two pivots and repeated elements.
-- >8 --
Improve shuffle_slide_patterns to better recognize permutations that
can be constructed by a slideup or slidedown, covering more cases:
Slideup one vector into the middle the other like
{0, 4, 5, 3}.
Slidedown one vector not ending in the last element like
{5, 6, 2, 3}.
Slidedown one vector from the beginning like
{4, 5, 2, 3}.
gcc/ChangeLog:
* riscv/riscv-v.c
(shuffle_slide_patterns): Cover more permutations.
gcc/testsuite/ChangeLog:
* gcc.target/riscv/rvv/autovec/shuffle-slide-run.h:
New test.
* gcc.target/riscv/rvv/autovec/shuffle-slidedown-run.c:
Likewise.
* gcc.target/riscv/rvv/autovec/shuffle-slideup-run.c:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slide.h:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-1.c:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-2.c:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slidedown-perm.h:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-1.c:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-2.c:
Likewise.
* gcc.target/riscv/rvv/autovec/vls-vlmax/shuffle-slideup-perm.h:
Likewise.
just a follow-up. rv32 passes with this version in my tester.
Given Juzhe has acked and Robin reviewed it internally. I think this is
good to go once pre-commit CI is done.
Jeff