[PATCH v1 0/4] Support RVV register overlap for vwadd[u].vv
[email protected] Fri, 31 Jul 2026 13:25:10 +0800
Newsgroups
gmane.comp.gcc.patches
Message-ID
<[email protected] >
From: Pan Li <[email protected] >
Like v[sz]ext.vf8, we continue the support for vwadd[u].vv.
The below test suites are passed for this patch:
1. The rv64gcv fully regression tests.
Pan Li (4):
RISC-V: Allow RVV register overlap for vw{add,sub,mul}[u].vv
RISC-V: Add test cases for vwadd.vv reg overlap
RISC-V: Add test cases for vwaddu.vv reg overlap
RISC-V: Add one more test case for vwadd.vv
gcc/config/riscv/vector.md | 18 +-
.../rvv/autovec/group_overlap/group_overlap.h | 154 ++++++++++++++++++
.../autovec/group_overlap/vwadd_vv-i16-m1.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i16-m2.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i16-m4.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i16-mf2.c | 19 +++
.../autovec/group_overlap/vwadd_vv-i16-mf4.c | 19 +++
.../autovec/group_overlap/vwadd_vv-i32-m1.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i32-m2.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i32-m4.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i32-mf2.c | 19 +++
.../autovec/group_overlap/vwadd_vv-i8-m1.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i8-m2.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i8-m4.c | 17 ++
.../autovec/group_overlap/vwadd_vv-i8-mf2.c | 19 +++
.../autovec/group_overlap/vwadd_vv-i8-mf4.c | 19 +++
.../autovec/group_overlap/vwadd_vv-i8-mf8.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u16-m1.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u16-m2.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u16-m4.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u16-mf2.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u16-mf4.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u32-m1.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u32-m2.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u32-m4.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u32-mf2.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u8-m1.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u8-m2.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u8-m4.c | 17 ++
.../autovec/group_overlap/vwaddu_vv-u8-mf2.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u8-mf4.c | 19 +++
.../autovec/group_overlap/vwaddu_vv-u8-mf8.c | 19 +++
.../gcc.target/riscv/rvv/base/pr112431-43.c | 59 +++++++
33 files changed, 756 insertions(+), 9 deletions(-)
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i16-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i16-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i16-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i16-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i16-mf4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i32-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i32-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i32-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i32-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-mf4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwadd_vv-i8-mf8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u16-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u16-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u16-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u16-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u16-mf4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u32-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u32-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u32-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u32-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-m1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-m2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-m4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-mf2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-mf4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vwaddu_vv-u8-mf8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/base/pr112431-43.c
--
2.43.0