On Tue, 12 Aug 2025 01:18:35 PDT (-0700), ru...@andestech.com wrote:
Changes since v2:
[PATCH 1/7]
Moved andes test cases to subdir gcc.target/riscv/xandes.
[PATCH 2/7]
Moved andes test cases to subdir gcc.target/riscv/xandes.
Replaced "equality_operator" with "any_eq".
Added code_attr "cs" for "any_eq".
Fixed comment for "*nds_bfoz<mode>4".
Modified builtins of the string extension (ffb, ffzmism, ffmism and
nds_flmism).
Add "-mabi" for some test cases.
[PATCH 3/7]
Moved andes test cases to subdir gcc.target/riscv/xandes.
Used "extendbfsf" to handle nds_fcvt_bf16_s.
Used "truncsfbf2" to handle nds_fcvt_bf16_s.
Add "-mabi" for test cases.
[PATCH 4/7] ~ [PATCH 7/7]
Add "-mabi" for test cases.
Thanks for your review.
Kuan-Lin Chen (7):
RISC-V: Add basic XAndes vendor extension support.
RISC-V: Add support for the XAndesperf ISA extension.
RISC-V: Add support for the XAndesbfhcvt ISA extension.
RISC-V: Add support for the XAndesvbfhcvt ISA extension.
RISC-V: Add support for the XAndesvsintload ISA extension.
RISC-V: Add support for the XAndesvpackfph ISA extension.
RISC-V: Add support for the XAndesvdot ISA extension.
Just FYI: this (and all the patches in the series) ended up spam
filtered by gmail on my end. Not sure there's really anything you can
do about that and they made patchwork so they shouldn't get lost, so
maybe it doesn't matter so much these days.
gcc/common/config/riscv/riscv-common.cc | 3 +
gcc/config.gcc | 4 +-
.../riscv/andes-vector-builtins-bases.cc | 189 ++++++++
.../riscv/andes-vector-builtins-bases.h | 42 ++
.../riscv/andes-vector-builtins-functions.def | 65 +++
gcc/config/riscv/andes-vector.md | 163 +++++++
gcc/config/riscv/andes.def | 14 +
gcc/config/riscv/andes.md | 429 ++++++++++++++++++
gcc/config/riscv/andes_vector.h | 32 ++
gcc/config/riscv/constraints.md | 10 +
gcc/config/riscv/genrvv-type-indexer.cc | 6 +-
gcc/config/riscv/iterators.md | 15 +
gcc/config/riscv/predicates.md | 42 ++
gcc/config/riscv/riscv-builtins.cc | 9 +
gcc/config/riscv/riscv-ext-andes.def | 100 ++++
gcc/config/riscv/riscv-ext.def | 1 +
gcc/config/riscv/riscv-ext.opt | 15 +
gcc/config/riscv/riscv-ftypes.def | 3 +
.../riscv/riscv-vector-builtins-types.def | 44 ++
gcc/config/riscv/riscv-vector-builtins.cc | 103 +++++
gcc/config/riscv/riscv-vector-builtins.def | 4 +
gcc/config/riscv/riscv-vector-builtins.h | 20 +
gcc/config/riscv/riscv.cc | 32 ++
gcc/config/riscv/riscv.md | 35 +-
gcc/config/riscv/t-riscv | 18 +-
gcc/config/riscv/vector-iterators.md | 38 +-
gcc/config/riscv/vector.md | 1 +
gcc/doc/riscv-ext.texi | 24 +
gcc/testsuite/gcc.target/riscv/riscv.exp | 2 +
gcc/testsuite/gcc.target/riscv/rvv/rvv.exp | 12 +
.../riscv/rvv/xandesvector/nds_vfwcvt.c | 37 ++
.../non-policy/non-overloaded/nds_vd4dots.c | 132 ++++++
.../non-policy/non-overloaded/nds_vd4dotsu.c | 132 ++++++
.../non-policy/non-overloaded/nds_vd4dotu.c | 132 ++++++
.../non-policy/non-overloaded/nds_vfpmadb.c | 103 +++++
.../non-policy/non-overloaded/nds_vfpmadt.c | 103 +++++
.../non-policy/non-overloaded/nds_vln8.c | 62 +++
.../non-policy/overloaded/nds_vd4dots.c | 132 ++++++
.../non-policy/overloaded/nds_vd4dotsu.c | 132 ++++++
.../non-policy/overloaded/nds_vd4dotu.c | 132 ++++++
.../non-policy/overloaded/nds_vfpmadb.c | 103 +++++
.../non-policy/overloaded/nds_vfpmadt.c | 103 +++++
.../non-policy/overloaded/nds_vln8.c | 34 ++
.../policy/non-overloaded/nds_vd4dots.c | 258 +++++++++++
.../policy/non-overloaded/nds_vd4dotsu.c | 258 +++++++++++
.../policy/non-overloaded/nds_vd4dotu.c | 258 +++++++++++
.../policy/non-overloaded/nds_vfpmadb.c | 199 ++++++++
.../policy/non-overloaded/nds_vfpmadt.c | 199 ++++++++
.../policy/non-overloaded/nds_vln8.c | 118 +++++
.../policy/overloaded/nds_vd4dots.c | 258 +++++++++++
.../policy/overloaded/nds_vd4dotsu.c | 258 +++++++++++
.../policy/overloaded/nds_vd4dotu.c | 258 +++++++++++
.../policy/overloaded/nds_vfpmadb.c | 199 ++++++++
.../policy/overloaded/nds_vfpmadt.c | 199 ++++++++
.../xandesvector/policy/overloaded/nds_vln8.c | 118 +++++
.../gcc.target/riscv/xandes/xandes-predef-1.c | 14 +
.../gcc.target/riscv/xandes/xandes-predef-2.c | 14 +
.../gcc.target/riscv/xandes/xandes-predef-3.c | 14 +
.../gcc.target/riscv/xandes/xandes-predef-4.c | 14 +
.../gcc.target/riscv/xandes/xandes-predef-5.c | 14 +
.../gcc.target/riscv/xandes/xandes-predef-6.c | 14 +
.../gcc.target/riscv/xandes/xandesbfhcvt-1.c | 11 +
.../gcc.target/riscv/xandes/xandesbfhcvt-2.c | 11 +
.../gcc.target/riscv/xandes/xandesperf-1.c | 13 +
.../gcc.target/riscv/xandes/xandesperf-10.c | 32 ++
.../gcc.target/riscv/xandes/xandesperf-11.c | 32 ++
.../gcc.target/riscv/xandes/xandesperf-2.c | 13 +
.../gcc.target/riscv/xandes/xandesperf-3.c | 11 +
.../gcc.target/riscv/xandes/xandesperf-4.c | 11 +
.../gcc.target/riscv/xandes/xandesperf-5.c | 11 +
.../gcc.target/riscv/xandes/xandesperf-6.c | 18 +
.../gcc.target/riscv/xandes/xandesperf-7.c | 22 +
.../gcc.target/riscv/xandes/xandesperf-8.c | 26 ++
.../gcc.target/riscv/xandes/xandesperf-9.c | 31 ++
74 files changed, 5701 insertions(+), 17 deletions(-)
create mode 100644 gcc/config/riscv/andes-vector-builtins-bases.cc
create mode 100644 gcc/config/riscv/andes-vector-builtins-bases.h
create mode 100644 gcc/config/riscv/andes-vector-builtins-functions.def
create mode 100644 gcc/config/riscv/andes-vector.md
create mode 100644 gcc/config/riscv/andes.def
create mode 100644 gcc/config/riscv/andes.md
create mode 100644 gcc/config/riscv/andes_vector.h
create mode 100644 gcc/config/riscv/riscv-ext-andes.def
create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/xandesvector/nds_vfwcvt.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dots.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotsu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfpmadb.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vfpmadt.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vln8.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dots.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotsu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfpmadb.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vfpmadt.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vln8.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dots.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotsu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfpmadb.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vfpmadt.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vln8.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dots.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotsu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotu.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfpmadb.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vfpmadt.c
create mode 100644
gcc/testsuite/gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vln8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandes-predef-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesbfhcvt-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-1.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-10.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-11.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-2.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-3.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-4.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-5.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-6.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-7.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-8.c
create mode 100644 gcc/testsuite/gcc.target/riscv/xandes/xandesperf-9.c