]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/config/riscv/riscv-builtins.cc
RISC-V: Introduce RVV header to enable builtin types
authorJu-Zhe Zhong <juzhe.zhong@rivai.ai>
Fri, 30 Sep 2022 06:58:16 +0000 (14:58 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Wed, 5 Oct 2022 13:58:21 +0000 (21:58 +0800)
commit7d935cdd1a6772699ec0ab4f93711928ca4d30a1
treec79a84890479cda34592dda056cbaee8770f3f46
parentdf4c584c567263fdcd57d8376f24f29477a892b2
RISC-V: Introduce RVV header to enable builtin types

gcc/ChangeLog:

* config.gcc: Add riscv_vector.h.
* config/riscv/riscv-builtins.cc: Add RVV builtin types support.
* config/riscv/riscv-c.cc (riscv_pragma_intrinsic): New function.
(riscv_register_pragmas): Ditto.
* config/riscv/riscv-protos.h (riscv_register_pragmas): Ditto.
(init_builtins): Move declaration from riscv-vector-builtins.h to riscv-protos.h.
(mangle_builtin_type): Ditto.
(verify_type_context): Ditto.
(handle_pragma_vector): New function.
* config/riscv/riscv-vector-builtins.cc (GTY): New variable.
(register_vector_type): New function.
(init_builtins): Add RVV builtin types support.
(handle_pragma_vector): New function.
* config/riscv/riscv-vector-builtins.h (GCC_RISCV_V_BUILTINS_H): Change
name according to file name.
(GCC_RISCV_VECTOR_BUILTINS_H): Ditto.
(init_builtins): Remove declaration in riscv-vector-builtins.h.
(mangle_builtin_type): Ditto.
(verify_type_context): Ditto.
* config/riscv/riscv.cc: Adjust for RVV builtin types support.
* config/riscv/riscv.h (REGISTER_TARGET_PRAGMAS): New macro.
* config/riscv/t-riscv: Remove redundant file including.
* config/riscv/riscv_vector.h: New file.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/rvv/base/pragma-1.c: New test.
* gcc.target/riscv/rvv/base/pragma-2.c: New test.
* gcc.target/riscv/rvv/base/pragma-3.c: New test.
* gcc.target/riscv/rvv/base/user-1.c: New test.
* gcc.target/riscv/rvv/base/user-2.c: New test.
* gcc.target/riscv/rvv/base/user-3.c: New test.
* gcc.target/riscv/rvv/base/user-4.c: New test.
* gcc.target/riscv/rvv/base/user-5.c: New test.
* gcc.target/riscv/rvv/base/user-6.c: New test.
* gcc.target/riscv/rvv/base/vread_csr.c: New test.
* gcc.target/riscv/rvv/base/vwrite_csr.c: New test.
21 files changed:
gcc/config.gcc
gcc/config/riscv/riscv-builtins.cc
gcc/config/riscv/riscv-c.cc
gcc/config/riscv/riscv-protos.h
gcc/config/riscv/riscv-vector-builtins.cc
gcc/config/riscv/riscv-vector-builtins.h
gcc/config/riscv/riscv.cc
gcc/config/riscv/riscv.h
gcc/config/riscv/riscv_vector.h [new file with mode: 0644]
gcc/config/riscv/t-riscv
gcc/testsuite/gcc.target/riscv/rvv/base/pragma-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/pragma-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/pragma-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-1.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-2.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-3.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-4.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-5.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/user-6.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/vread_csr.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/rvv/base/vwrite_csr.c [new file with mode: 0644]