[0/5,V1] RISC-V:Implement Crypto extension's instruction patterns and it's intrinsics

Message ID 20220223094418.3518-1-shihua@iscas.ac.cn
Headers
Series RISC-V:Implement Crypto extension's instruction patterns and it's intrinsics |

Message

Liao Shihua Feb. 23, 2022, 9:44 a.m. UTC
  From: LiaoShihua <shihua@iscas.ac.cn>

    This patch set is the implementation of Crypto extension, which includes zbkb, zbkc, zbkx,
    zknd, zknh, zkne,zksed and zksh extension.
    It includes instruction/md patterns, intrinsic functions, testcases for intrinsic functions, 
    and test macros.
    The definitions of intrinsic functions come from https://github.com/rvkrypto/rvkrypto-fips .
    This work is done by Liao Shihua and Wu Siyu.

LiaoShihua (5):
  RISC-V:Implement instruction patterns for Crypto extensions
  RISC-V:Implement built-in instructions for Crypto extensions
  RISC-V:Implement intrinsics for Crypto extensions
  RISC-V:Implement testcases for Crypto extensions
  RISC-V:Implement architecture extension test macros for Crypto extensions

 gcc/config.gcc                             |   1 +
 gcc/config/riscv/crypto.md                 | 383 +++++++++++++
 gcc/config/riscv/predicates.md             |   8 +
 gcc/config/riscv/riscv-builtins-crypto.def |  93 ++++
 gcc/config/riscv/riscv-builtins.cc         |  35 ++
 gcc/config/riscv/riscv-c.cc                |   9 +
 gcc/config/riscv/riscv-ftypes.def          |   7 +
 gcc/config/riscv/riscv.md                  |   1 +
 gcc/config/riscv/riscv_crypto.h            |  12 +
 gcc/config/riscv/riscv_crypto_scalar.h     | 247 +++++++++
 gcc/config/riscv/rvk_asm_intrin.h          | 187 +++++++
 gcc/config/riscv/rvk_emu_intrin.h          | 594 +++++++++++++++++++++
 gcc/testsuite/gcc.target/riscv/predef-17.c |  59 ++
 gcc/testsuite/gcc.target/riscv/zbkb32.c    |  34 ++
 gcc/testsuite/gcc.target/riscv/zbkb64.c    |  21 +
 gcc/testsuite/gcc.target/riscv/zbkc32.c    |  16 +
 gcc/testsuite/gcc.target/riscv/zbkc64.c    |  16 +
 gcc/testsuite/gcc.target/riscv/zbkx32.c    |  16 +
 gcc/testsuite/gcc.target/riscv/zbkx64.c    |  16 +
 gcc/testsuite/gcc.target/riscv/zknd32.c    |  18 +
 gcc/testsuite/gcc.target/riscv/zknd64.c    |  35 ++
 gcc/testsuite/gcc.target/riscv/zkne64.c    |  29 +
 gcc/testsuite/gcc.target/riscv/zknh.c      |  28 +
 gcc/testsuite/gcc.target/riscv/zknh32.c    |  40 ++
 gcc/testsuite/gcc.target/riscv/zknh64.c    |  29 +
 gcc/testsuite/gcc.target/riscv/zksed.c     |  20 +
 gcc/testsuite/gcc.target/riscv/zksh.c      |  17 +
 27 files changed, 1971 insertions(+)
 create mode 100644 gcc/config/riscv/crypto.md
 create mode 100644 gcc/config/riscv/riscv-builtins-crypto.def
 create mode 100644 gcc/config/riscv/riscv_crypto.h
 create mode 100644 gcc/config/riscv/riscv_crypto_scalar.h
 create mode 100644 gcc/config/riscv/rvk_asm_intrin.h
 create mode 100644 gcc/config/riscv/rvk_emu_intrin.h
 create mode 100644 gcc/testsuite/gcc.target/riscv/predef-17.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkb32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkb64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkc32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkc64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkx32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zbkx64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknd32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknd64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c