[V4,0/3] RISC-V:Add mininal support for Zicbo[mzp]

Message ID 20220510032526.11560-1-shiyulong@iscas.ac.cn
Headers
Series RISC-V:Add mininal support for Zicbo[mzp] |

Message

yulong May 10, 2022, 3:25 a.m. UTC
  From: yulong <shiyulong@iscas.ac.cn>

This patchset adds support for three recently ratified RISC-V extensions:

-   Zicbom (Cache-Block Management Instructions)
-   Zicbop (Cache-Block Prefetch hint instructions)
-   Zicboz (Cache-Block Zero Instructions)

Patch 1: Add Zicbom/z/p mininal support
Patch 2: Add Zicbom/z/p instructions arch support
Patch 3: Add Zicbom/z/p instructions testcases

diff with the previous version:
We use unspec_volatile instead of unspec for those cache operations, and move those UNSPEC from unspec to unspecv.
 19
 20 cf. <https://github.com/riscv/riscv-CMOs/blob/fc8e97a9531ac9811971a182ae431976b86216e1/specifications/cmobase-v1.0-rc2.pdf>;

yulong (3):
  RISC-V: Add mininal support for Zicbo[mzp]
  RISC-V:Cache Management Operation instructions
  RISC-V:Cache Management Operation instructions testcases

 gcc/common/config/riscv/riscv-common.cc       |  8 +++
 gcc/config/riscv/predicates.md                |  4 ++
 gcc/config/riscv/riscv-builtins.cc            | 16 ++++++
 gcc/config/riscv/riscv-cmo.def                | 17 +++++++
 gcc/config/riscv/riscv-ftypes.def             |  4 ++
 gcc/config/riscv/riscv-opts.h                 |  8 +++
 gcc/config/riscv/riscv.md                     | 51 +++++++++++++++++++
 gcc/config/riscv/riscv.opt                    |  3 ++
 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c | 21 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c | 21 ++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c | 23 +++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c | 23 +++++++++
 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c |  9 ++++
 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c |  9 ++++
 14 files changed, 217 insertions(+)
 create mode 100644 gcc/config/riscv/riscv-cmo.def
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
  

Comments

Kito Cheng May 24, 2022, 1:02 p.m. UTC | #1
Committed with a few minor style fixes, thanks!

On Tue, May 10, 2022 at 11:26 AM <shiyulong@iscas.ac.cn> wrote:
>
> From: yulong <shiyulong@iscas.ac.cn>
>
> This patchset adds support for three recently ratified RISC-V extensions:
>
> -   Zicbom (Cache-Block Management Instructions)
> -   Zicbop (Cache-Block Prefetch hint instructions)
> -   Zicboz (Cache-Block Zero Instructions)
>
> Patch 1: Add Zicbom/z/p mininal support
> Patch 2: Add Zicbom/z/p instructions arch support
> Patch 3: Add Zicbom/z/p instructions testcases
>
> diff with the previous version:
> We use unspec_volatile instead of unspec for those cache operations, and move those UNSPEC from unspec to unspecv.
>  19
>  20 cf. <https://github.com/riscv/riscv-CMOs/blob/fc8e97a9531ac9811971a182ae431976b86216e1/specifications/cmobase-v1.0-rc2.pdf>;
>
> yulong (3):
>   RISC-V: Add mininal support for Zicbo[mzp]
>   RISC-V:Cache Management Operation instructions
>   RISC-V:Cache Management Operation instructions testcases
>
>  gcc/common/config/riscv/riscv-common.cc       |  8 +++
>  gcc/config/riscv/predicates.md                |  4 ++
>  gcc/config/riscv/riscv-builtins.cc            | 16 ++++++
>  gcc/config/riscv/riscv-cmo.def                | 17 +++++++
>  gcc/config/riscv/riscv-ftypes.def             |  4 ++
>  gcc/config/riscv/riscv-opts.h                 |  8 +++
>  gcc/config/riscv/riscv.md                     | 51 +++++++++++++++++++
>  gcc/config/riscv/riscv.opt                    |  3 ++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c | 21 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c | 21 ++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c | 23 +++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c | 23 +++++++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c |  9 ++++
>  gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c |  9 ++++
>  14 files changed, 217 insertions(+)
>  create mode 100644 gcc/config/riscv/riscv-cmo.def
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbom-2.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicbop-2.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-1.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/cmo-zicboz-2.c
>
> --
> 2.17.1
>