Hi,

This extension defines vector instructions to calculae of the
signed/unsigned
dot product of four SEW/4-bit data and accumulate the result into a SEWbit
element for all elements in a vector register.

gcc/ChangeLog:

        * config/riscv/andes-vector-builtins-bases.cc (nds_vd4dot): New
class.
        (class nds_vd4dotsu): New class.
        * config/riscv/andes-vector-builtins-bases.h: New def.
        * config/riscv/andes-vector-builtins-functions.def (nds_vd4dots):
Ditto.
        (nds_vd4dotsu): Ditto.
        (nds_vd4dotu): Ditto.
        * config/riscv/andes-vector.md
        (@pred_nds_vd4dot<su><mode>): New pattern.
        (@pred_nds_vd4dotsu<mode>): New pattern.
        * config/riscv/genrvv-type-indexer.cc (main): Modify sew of
QUAD_FIX,
        QUAD_FIX_SIGNED and QUAD_FIX_UNSIGNED.
        * config/riscv/riscv-vector-builtins.cc
        (qexti_vvvv_ops): New operand information.
        (qexti_su_vvvv_ops): New operand information.
        (qextu_vvvv_ops): New operand information.
        * config/riscv/riscv-vector-builtins.h (XANDESVDOT_EXT): New def.
        (required_ext_to_isa_name): Add case XANDESVDOT_EXT.
        (required_extensions_specified): Ditto.
        (struct function_group_info): Ditto.
        * config/riscv/vector-iterators.md (NDS_QUAD_FIX): New iterator.

gcc/testsuite/ChangeLog:

        *
gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dots.c:
New test.
        *
gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotsu.c:
New test.
        *
gcc.target/riscv/rvv/xandesvector/non-policy/non-overloaded/nds_vd4dotu.c:
New test.
        *
gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dots.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotsu.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/non-policy/overloaded/nds_vd4dotu.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dots.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotsu.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/policy/non-overloaded/nds_vd4dotu.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dots.c: New test.
        *
gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotsu.c: New
test.
        *
gcc.target/riscv/rvv/xandesvector/policy/overloaded/nds_vd4dotu.c: New test.

Attachment: 0007-RISC-V-Add-support-for-the-XAndesvdot-ISA-extension.patch
Description: Binary data

Reply via email to