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. 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 -- 2.34.1