From: LiaoShihua <shi...@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 -- 2.31.1.windows.1