RISC-V: Implement ZKNH extension
authorLiao Shihua <shihua@iscas.ac.cn>
Mon, 20 Feb 2023 07:01:24 +0000 (15:01 +0800)
committerKito Cheng <kito.cheng@sifive.com>
Sun, 5 Mar 2023 17:05:08 +0000 (01:05 +0800)
commite6416e4323f346968533de404518b2aaf186ead1
treea43b08d0e360000cbc44d433b38978d5425d047a
parent072c558a0f181bec139d68b451e7aa4907dbc5ef
RISC-V: Implement ZKNH extension

This patch supports Zknh extension.
It includes instruction's machine description and built-in funtions.

gcc/ChangeLog:

* config/riscv/crypto.md (riscv_sha256sig0_<mode>): Add ZKNH's instructions.
(riscv_sha256sig1_<mode>): New.
(riscv_sha256sum0_<mode>): New.
(riscv_sha256sum1_<mode>): New.
(riscv_sha512sig0h): New.
(riscv_sha512sig0l): New.
(riscv_sha512sig1h): New.
(riscv_sha512sig1l): New.
(riscv_sha512sum0r): New.
(riscv_sha512sum1r): New.
(riscv_sha512sig0): New.
(riscv_sha512sig1): New.
(riscv_sha512sum0): New.
(riscv_sha512sum1): New.
* config/riscv/riscv-builtins.cc (AVAIL): And ZKNH's AVAIL.
* config/riscv/riscv-scalar-crypto.def (RISCV_BUILTIN): And ZKNH's
built-in functions.
(DIRECT_BUILTIN): Add new.

gcc/testsuite/ChangeLog:

* gcc.target/riscv/zknh-sha256.c: New test.
* gcc.target/riscv/zknh-sha512-32.c: New test.
* gcc.target/riscv/zknh-sha512-64.c: New test.

Co-Authored-By: SiYu Wu <siyu@isrc.iscas.ac.cn>
gcc/config/riscv/crypto.md
gcc/config/riscv/riscv-builtins.cc
gcc/config/riscv/riscv-scalar-crypto.def
gcc/testsuite/gcc.target/riscv/zknh-sha256.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c [new file with mode: 0644]
gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c [new file with mode: 0644]