From: yulong <shiyul...@iscas.ac.cn>

This patch implements the Sifvie vendor extension Xsfvcp[1]
 support to gcc. Providing a flexible mechanism to extend application
 processors with custom coprocessors and variable-latency arithmetic
  units intrinsics.

[1] 
https://www.sifive.com/document-file/sifive-vector-coprocessor-interface-vcix-software

Co-Authored by: Jiawei Chen <jia...@iscas.ac.cn>
Co-Authored by: Shihua Liao <shi...@iscas.ac.cn>
Co-Authored by: Yixuan Chen <chenyix...@iscas.ac.cn>

Diff with V3: Add new RTL mode and sifive_vector.h file and change testcase 
include file.

yulong (2):
  RISC-V: Add intrinsics support for SiFive Xsfvcp extensions.
  RISC-V: Add intrinsics testcases for SiFive Xsfvcp extensions.

 gcc/config.gcc                                |   2 +-
 gcc/config/riscv/constraints.md               |  10 +
 gcc/config/riscv/generic-vector-ooo.md        |   4 +
 gcc/config/riscv/genrvv-type-indexer.cc       |   9 +
 gcc/config/riscv/riscv-c.cc                   |   3 +-
 .../riscv/riscv-vector-builtins-shapes.cc     |  48 +
 .../riscv/riscv-vector-builtins-shapes.h      |   2 +
 .../riscv/riscv-vector-builtins-types.def     |  40 +
 gcc/config/riscv/riscv-vector-builtins.cc     | 362 +++++++-
 gcc/config/riscv/riscv-vector-builtins.def    |  30 +-
 gcc/config/riscv/riscv-vector-builtins.h      |   8 +
 gcc/config/riscv/riscv.md                     |   5 +-
 .../riscv/sifive-vector-builtins-bases.cc     |  78 ++
 .../riscv/sifive-vector-builtins-bases.h      |   3 +
 .../sifive-vector-builtins-functions.def      |  45 +
 gcc/config/riscv/sifive-vector.md             | 871 ++++++++++++++++++
 gcc/config/riscv/sifive_vector.h              |  47 +
 gcc/config/riscv/vector-iterators.md          |  48 +
 gcc/config/riscv/vector.md                    |   3 +-
 .../gcc.target/riscv/rvv/xsfvector/sf_vc_f.c  |  88 ++
 .../gcc.target/riscv/rvv/xsfvector/sf_vc_i.c  | 132 +++
 .../gcc.target/riscv/rvv/xsfvector/sf_vc_v.c  | 107 +++
 .../gcc.target/riscv/rvv/xsfvector/sf_vc_x.c  | 138 +++
 23 files changed, 2074 insertions(+), 9 deletions(-)
 create mode 100644 gcc/config/riscv/sifive_vector.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_f.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_i.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_v.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/rvv/xsfvector/sf_vc_x.c

-- 
2.34.1

Reply via email to