[V2,0/5] RISC-V: Implement Scalar Cryptography Extension

Message ID 20230216075005.2600-1-shihua@iscas.ac.cn
Headers
Series RISC-V: Implement Scalar Cryptography Extension |

Message

Liao Shihua Feb. 16, 2023, 7:50 a.m. UTC
  This series adds basic support for the Scalar Cryptography extensions:
* Zbkb
* Zbkc
* Zbkx
* Zknd
* Zkne
* Zknh
* Zksed
* Zksh

The implementation follows the version Scalar Cryptography v1.0.0 of the specification,
and the intrinsic of Scalar Cryptography extensions follows riscv-c-api
which can be found here:
https://github.com/riscv/riscv-crypto/releases/tag/v1.0.0-scalar
https://github.com/riscv-non-isa/riscv-c-api-doc/pull/31

It works by Wu Siyu and Liao Shihua .

Liao Shihua (5):
  Add prototypes for RISC-V Crypto built-in functions
  Implement ZBKB, ZBKC and ZBKX extensions
  Implement ZKND and ZKNE extensions
  Implement ZKNH extensions
  Implement ZKSH and ZKSED extensions

 gcc/config.gcc                                |   2 +-
 gcc/config/riscv/bitmanip.md                  |  20 +-
 gcc/config/riscv/constraints.md               |   8 +
 gcc/config/riscv/crypto.md                    | 435 ++++++++++++++++++
 gcc/config/riscv/riscv-builtins.cc            |  26 ++
 gcc/config/riscv/riscv-crypto.def             |  94 ++++
 gcc/config/riscv/riscv-ftypes.def             |  10 +
 gcc/config/riscv/riscv.md                     |   4 +-
 gcc/config/riscv/riscv_scalar_crypto.h        | 218 +++++++++
 gcc/testsuite/gcc.target/riscv/zbkb32.c       |  36 ++
 gcc/testsuite/gcc.target/riscv/zbkb64.c       |  28 ++
 gcc/testsuite/gcc.target/riscv/zbkc32.c       |  17 +
 gcc/testsuite/gcc.target/riscv/zbkc64.c       |  17 +
 gcc/testsuite/gcc.target/riscv/zbkx32.c       |  18 +
 gcc/testsuite/gcc.target/riscv/zbkx64.c       |  18 +
 gcc/testsuite/gcc.target/riscv/zknd32.c       |  18 +
 gcc/testsuite/gcc.target/riscv/zknd64.c       |  36 ++
 gcc/testsuite/gcc.target/riscv/zkne32.c       |  18 +
 gcc/testsuite/gcc.target/riscv/zkne64.c       |  30 ++
 gcc/testsuite/gcc.target/riscv/zknh-sha256.c  |  29 ++
 .../gcc.target/riscv/zknh-sha512-32.c         |  43 ++
 .../gcc.target/riscv/zknh-sha512-64.c         |  31 ++
 gcc/testsuite/gcc.target/riscv/zksed.c        |  20 +
 gcc/testsuite/gcc.target/riscv/zksh.c         |  19 +
 24 files changed, 1183 insertions(+), 12 deletions(-)
 create mode 100644 gcc/config/riscv/crypto.md
 create mode 100644 gcc/config/riscv/riscv-crypto.def
 create mode 100644 gcc/config/riscv/riscv_scalar_crypto.h
 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/zkne32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha256.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
 create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c
  

Comments

Kito Cheng Feb. 16, 2023, 1:28 p.m. UTC | #1
Hi Shihua:

Thanks for your patches! This patch set is generally in good shape,
but I would prefer to remove riscv_scalar_crypto.h at this moment
since it's NOT standardized yet.

Do you mind sending a new version of this patch set which does not
include that and also update the testcases?



On Thu, Feb 16, 2023 at 3:52 PM Liao Shihua <shihua@iscas.ac.cn> wrote:
>
> This series adds basic support for the Scalar Cryptography extensions:
> * Zbkb
> * Zbkc
> * Zbkx
> * Zknd
> * Zkne
> * Zknh
> * Zksed
> * Zksh
>
> The implementation follows the version Scalar Cryptography v1.0.0 of the specification,
> and the intrinsic of Scalar Cryptography extensions follows riscv-c-api
> which can be found here:
> https://github.com/riscv/riscv-crypto/releases/tag/v1.0.0-scalar
> https://github.com/riscv-non-isa/riscv-c-api-doc/pull/31
>
> It works by Wu Siyu and Liao Shihua .
>
> Liao Shihua (5):
>   Add prototypes for RISC-V Crypto built-in functions
>   Implement ZBKB, ZBKC and ZBKX extensions
>   Implement ZKND and ZKNE extensions
>   Implement ZKNH extensions
>   Implement ZKSH and ZKSED extensions
>
>  gcc/config.gcc                                |   2 +-
>  gcc/config/riscv/bitmanip.md                  |  20 +-
>  gcc/config/riscv/constraints.md               |   8 +
>  gcc/config/riscv/crypto.md                    | 435 ++++++++++++++++++
>  gcc/config/riscv/riscv-builtins.cc            |  26 ++
>  gcc/config/riscv/riscv-crypto.def             |  94 ++++
>  gcc/config/riscv/riscv-ftypes.def             |  10 +
>  gcc/config/riscv/riscv.md                     |   4 +-
>  gcc/config/riscv/riscv_scalar_crypto.h        | 218 +++++++++
>  gcc/testsuite/gcc.target/riscv/zbkb32.c       |  36 ++
>  gcc/testsuite/gcc.target/riscv/zbkb64.c       |  28 ++
>  gcc/testsuite/gcc.target/riscv/zbkc32.c       |  17 +
>  gcc/testsuite/gcc.target/riscv/zbkc64.c       |  17 +
>  gcc/testsuite/gcc.target/riscv/zbkx32.c       |  18 +
>  gcc/testsuite/gcc.target/riscv/zbkx64.c       |  18 +
>  gcc/testsuite/gcc.target/riscv/zknd32.c       |  18 +
>  gcc/testsuite/gcc.target/riscv/zknd64.c       |  36 ++
>  gcc/testsuite/gcc.target/riscv/zkne32.c       |  18 +
>  gcc/testsuite/gcc.target/riscv/zkne64.c       |  30 ++
>  gcc/testsuite/gcc.target/riscv/zknh-sha256.c  |  29 ++
>  .../gcc.target/riscv/zknh-sha512-32.c         |  43 ++
>  .../gcc.target/riscv/zknh-sha512-64.c         |  31 ++
>  gcc/testsuite/gcc.target/riscv/zksed.c        |  20 +
>  gcc/testsuite/gcc.target/riscv/zksh.c         |  19 +
>  24 files changed, 1183 insertions(+), 12 deletions(-)
>  create mode 100644 gcc/config/riscv/crypto.md
>  create mode 100644 gcc/config/riscv/riscv-crypto.def
>  create mode 100644 gcc/config/riscv/riscv_scalar_crypto.h
>  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/zkne32.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha256.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
>  create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c
>
> --
> 2.38.1.windows.1
>
  
Markku-Juhani Olavi Saarinen Feb. 16, 2023, 1:52 p.m. UTC | #2
On Thu, Feb 16, 2023, 13:29 Kito Cheng <kito.cheng@gmail.com> wrote:

> Hi Shihua:
>
> Thanks for your patches! This patch set is generally in good shape,
> but I would prefer to remove riscv_scalar_crypto.h at this moment
> since it's NOT standardized yet.
>

Hi Kito,

I'm not sure if you're referring to the scalar crypto extensions (which
were fully ratified in November 2021 by RVI, are included  in several
profiles, and available in commercial silicon IP), or this particular
header file. Note that the single header is perhaps the most convenient way
to access these subextensions that make up the scalar crypto extension 1.0.

Cheers,
Markku

>
> Do you mind sending a new version of this patch set which does not
> include that and also update the testcases?
>
>
>
> On Thu, Feb 16, 2023 at 3:52 PM Liao Shihua <shihua@iscas.ac.cn> wrote:
> >
> > This series adds basic support for the Scalar Cryptography extensions:
> > * Zbkb
> > * Zbkc
> > * Zbkx
> > * Zknd
> > * Zkne
> > * Zknh
> > * Zksed
> > * Zksh
> >
> > The implementation follows the version Scalar Cryptography v1.0.0 of the
> specification,
> > and the intrinsic of Scalar Cryptography extensions follows riscv-c-api
> > which can be found here:
> > https://github.com/riscv/riscv-crypto/releases/tag/v1.0.0-scalar
> > https://github.com/riscv-non-isa/riscv-c-api-doc/pull/31
> >
> > It works by Wu Siyu and Liao Shihua .
> >
> > Liao Shihua (5):
> >   Add prototypes for RISC-V Crypto built-in functions
> >   Implement ZBKB, ZBKC and ZBKX extensions
> >   Implement ZKND and ZKNE extensions
> >   Implement ZKNH extensions
> >   Implement ZKSH and ZKSED extensions
> >
> >  gcc/config.gcc                                |   2 +-
> >  gcc/config/riscv/bitmanip.md                  |  20 +-
> >  gcc/config/riscv/constraints.md               |   8 +
> >  gcc/config/riscv/crypto.md                    | 435 ++++++++++++++++++
> >  gcc/config/riscv/riscv-builtins.cc            |  26 ++
> >  gcc/config/riscv/riscv-crypto.def             |  94 ++++
> >  gcc/config/riscv/riscv-ftypes.def             |  10 +
> >  gcc/config/riscv/riscv.md                     |   4 +-
> >  gcc/config/riscv/riscv_scalar_crypto.h        | 218 +++++++++
> >  gcc/testsuite/gcc.target/riscv/zbkb32.c       |  36 ++
> >  gcc/testsuite/gcc.target/riscv/zbkb64.c       |  28 ++
> >  gcc/testsuite/gcc.target/riscv/zbkc32.c       |  17 +
> >  gcc/testsuite/gcc.target/riscv/zbkc64.c       |  17 +
> >  gcc/testsuite/gcc.target/riscv/zbkx32.c       |  18 +
> >  gcc/testsuite/gcc.target/riscv/zbkx64.c       |  18 +
> >  gcc/testsuite/gcc.target/riscv/zknd32.c       |  18 +
> >  gcc/testsuite/gcc.target/riscv/zknd64.c       |  36 ++
> >  gcc/testsuite/gcc.target/riscv/zkne32.c       |  18 +
> >  gcc/testsuite/gcc.target/riscv/zkne64.c       |  30 ++
> >  gcc/testsuite/gcc.target/riscv/zknh-sha256.c  |  29 ++
> >  .../gcc.target/riscv/zknh-sha512-32.c         |  43 ++
> >  .../gcc.target/riscv/zknh-sha512-64.c         |  31 ++
> >  gcc/testsuite/gcc.target/riscv/zksed.c        |  20 +
> >  gcc/testsuite/gcc.target/riscv/zksh.c         |  19 +
> >  24 files changed, 1183 insertions(+), 12 deletions(-)
> >  create mode 100644 gcc/config/riscv/crypto.md
> >  create mode 100644 gcc/config/riscv/riscv-crypto.def
> >  create mode 100644 gcc/config/riscv/riscv_scalar_crypto.h
> >  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/zkne32.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha256.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
> >  create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c
> >
> > --
> > 2.38.1.windows.1
> >
>
  
Kito Cheng Feb. 16, 2023, 2 p.m. UTC | #3
Hi Markku-Juhani:

Scalar crypto is ratified I know, but the scalar crypto intrinsic part
isn't standardized - and even the APIs listed in riscv_scalar_crypto.h
are not documented anywhere yet.
So what I mean is I am happy to accept this patch except the
riscv_scalar_crypto.h header.

Once the API has documented and merged I am happy to accept that part too.

On Thu, Feb 16, 2023 at 9:52 PM Markku-Juhani Olavi Saarinen
<mjos@iki.fi> wrote:
>
> On Thu, Feb 16, 2023, 13:29 Kito Cheng <kito.cheng@gmail.com> wrote:
>
> > Hi Shihua:
> >
> > Thanks for your patches! This patch set is generally in good shape,
> > but I would prefer to remove riscv_scalar_crypto.h at this moment
> > since it's NOT standardized yet.
> >
>
> Hi Kito,
>
> I'm not sure if you're referring to the scalar crypto extensions (which
> were fully ratified in November 2021 by RVI, are included  in several
> profiles, and available in commercial silicon IP), or this particular
> header file. Note that the single header is perhaps the most convenient way
> to access these subextensions that make up the scalar crypto extension 1.0.
>
> Cheers,
> Markku
>
> >
> > Do you mind sending a new version of this patch set which does not
> > include that and also update the testcases?
> >
> >
> >
> > On Thu, Feb 16, 2023 at 3:52 PM Liao Shihua <shihua@iscas.ac.cn> wrote:
> > >
> > > This series adds basic support for the Scalar Cryptography extensions:
> > > * Zbkb
> > > * Zbkc
> > > * Zbkx
> > > * Zknd
> > > * Zkne
> > > * Zknh
> > > * Zksed
> > > * Zksh
> > >
> > > The implementation follows the version Scalar Cryptography v1.0.0 of the
> > specification,
> > > and the intrinsic of Scalar Cryptography extensions follows riscv-c-api
> > > which can be found here:
> > > https://github.com/riscv/riscv-crypto/releases/tag/v1.0.0-scalar
> > > https://github.com/riscv-non-isa/riscv-c-api-doc/pull/31
> > >
> > > It works by Wu Siyu and Liao Shihua .
> > >
> > > Liao Shihua (5):
> > >   Add prototypes for RISC-V Crypto built-in functions
> > >   Implement ZBKB, ZBKC and ZBKX extensions
> > >   Implement ZKND and ZKNE extensions
> > >   Implement ZKNH extensions
> > >   Implement ZKSH and ZKSED extensions
> > >
> > >  gcc/config.gcc                                |   2 +-
> > >  gcc/config/riscv/bitmanip.md                  |  20 +-
> > >  gcc/config/riscv/constraints.md               |   8 +
> > >  gcc/config/riscv/crypto.md                    | 435 ++++++++++++++++++
> > >  gcc/config/riscv/riscv-builtins.cc            |  26 ++
> > >  gcc/config/riscv/riscv-crypto.def             |  94 ++++
> > >  gcc/config/riscv/riscv-ftypes.def             |  10 +
> > >  gcc/config/riscv/riscv.md                     |   4 +-
> > >  gcc/config/riscv/riscv_scalar_crypto.h        | 218 +++++++++
> > >  gcc/testsuite/gcc.target/riscv/zbkb32.c       |  36 ++
> > >  gcc/testsuite/gcc.target/riscv/zbkb64.c       |  28 ++
> > >  gcc/testsuite/gcc.target/riscv/zbkc32.c       |  17 +
> > >  gcc/testsuite/gcc.target/riscv/zbkc64.c       |  17 +
> > >  gcc/testsuite/gcc.target/riscv/zbkx32.c       |  18 +
> > >  gcc/testsuite/gcc.target/riscv/zbkx64.c       |  18 +
> > >  gcc/testsuite/gcc.target/riscv/zknd32.c       |  18 +
> > >  gcc/testsuite/gcc.target/riscv/zknd64.c       |  36 ++
> > >  gcc/testsuite/gcc.target/riscv/zkne32.c       |  18 +
> > >  gcc/testsuite/gcc.target/riscv/zkne64.c       |  30 ++
> > >  gcc/testsuite/gcc.target/riscv/zknh-sha256.c  |  29 ++
> > >  .../gcc.target/riscv/zknh-sha512-32.c         |  43 ++
> > >  .../gcc.target/riscv/zknh-sha512-64.c         |  31 ++
> > >  gcc/testsuite/gcc.target/riscv/zksed.c        |  20 +
> > >  gcc/testsuite/gcc.target/riscv/zksh.c         |  19 +
> > >  24 files changed, 1183 insertions(+), 12 deletions(-)
> > >  create mode 100644 gcc/config/riscv/crypto.md
> > >  create mode 100644 gcc/config/riscv/riscv-crypto.def
> > >  create mode 100644 gcc/config/riscv/riscv_scalar_crypto.h
> > >  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/zkne32.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha256.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
> > >  create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c
> > >
> > > --
> > > 2.38.1.windows.1
> > >
> >
  
Liao Shihua Feb. 17, 2023, 3:29 a.m. UTC | #4
OK, I will send another one which remove riscv_scalar_crypto.h and update testcases with __builtin_riscv_XX


&gt; -----原始邮件-----
&gt; 发件人: "Kito Cheng" <kito.cheng@gmail.com>
&gt; 发送时间: 2023-02-16 21:28:34 (星期四)
&gt; 收件人: "Liao Shihua" <shihua@iscas.ac.cn>
&gt; 抄送: gcc-patches@gcc.gnu.org, jiawei@iscas.ac.cn, mjos@iki.fi, palmer@dabbelt.com, shiyulong@iscas.ac.cn, ben.marshall@pqshield.com, christoph.muellner@vrull.eu
&gt; 主题: Re: [PATCH V2 0/5] RISC-V: Implement Scalar Cryptography Extension
&gt; 
&gt; Hi Shihua:
&gt; 
&gt; Thanks for your patches! This patch set is generally in good shape,
&gt; but I would prefer to remove riscv_scalar_crypto.h at this moment
&gt; since it's NOT standardized yet.
&gt; 
&gt; Do you mind sending a new version of this patch set which does not
&gt; include that and also update the testcases?
&gt; 
&gt; 
&gt; 
&gt; On Thu, Feb 16, 2023 at 3:52 PM Liao Shihua <shihua@iscas.ac.cn> wrote:
&gt; &gt;
&gt; &gt; This series adds basic support for the Scalar Cryptography extensions:
&gt; &gt; * Zbkb
&gt; &gt; * Zbkc
&gt; &gt; * Zbkx
&gt; &gt; * Zknd
&gt; &gt; * Zkne
&gt; &gt; * Zknh
&gt; &gt; * Zksed
&gt; &gt; * Zksh
&gt; &gt;
&gt; &gt; The implementation follows the version Scalar Cryptography v1.0.0 of the specification,
&gt; &gt; and the intrinsic of Scalar Cryptography extensions follows riscv-c-api
&gt; &gt; which can be found here:
&gt; &gt; https://github.com/riscv/riscv-crypto/releases/tag/v1.0.0-scalar
&gt; &gt; https://github.com/riscv-non-isa/riscv-c-api-doc/pull/31
&gt; &gt;
&gt; &gt; It works by Wu Siyu and Liao Shihua .
&gt; &gt;
&gt; &gt; Liao Shihua (5):
&gt; &gt;   Add prototypes for RISC-V Crypto built-in functions
&gt; &gt;   Implement ZBKB, ZBKC and ZBKX extensions
&gt; &gt;   Implement ZKND and ZKNE extensions
&gt; &gt;   Implement ZKNH extensions
&gt; &gt;   Implement ZKSH and ZKSED extensions
&gt; &gt;
&gt; &gt;  gcc/config.gcc                                |   2 +-
&gt; &gt;  gcc/config/riscv/bitmanip.md                  |  20 +-
&gt; &gt;  gcc/config/riscv/constraints.md               |   8 +
&gt; &gt;  gcc/config/riscv/crypto.md                    | 435 ++++++++++++++++++
&gt; &gt;  gcc/config/riscv/riscv-builtins.cc            |  26 ++
&gt; &gt;  gcc/config/riscv/riscv-crypto.def             |  94 ++++
&gt; &gt;  gcc/config/riscv/riscv-ftypes.def             |  10 +
&gt; &gt;  gcc/config/riscv/riscv.md                     |   4 +-
&gt; &gt;  gcc/config/riscv/riscv_scalar_crypto.h        | 218 +++++++++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkb32.c       |  36 ++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkb64.c       |  28 ++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkc32.c       |  17 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkc64.c       |  17 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkx32.c       |  18 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zbkx64.c       |  18 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zknd32.c       |  18 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zknd64.c       |  36 ++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zkne32.c       |  18 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zkne64.c       |  30 ++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zknh-sha256.c  |  29 ++
&gt; &gt;  .../gcc.target/riscv/zknh-sha512-32.c         |  43 ++
&gt; &gt;  .../gcc.target/riscv/zknh-sha512-64.c         |  31 ++
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zksed.c        |  20 +
&gt; &gt;  gcc/testsuite/gcc.target/riscv/zksh.c         |  19 +
&gt; &gt;  24 files changed, 1183 insertions(+), 12 deletions(-)
&gt; &gt;  create mode 100644 gcc/config/riscv/crypto.md
&gt; &gt;  create mode 100644 gcc/config/riscv/riscv-crypto.def
&gt; &gt;  create mode 100644 gcc/config/riscv/riscv_scalar_crypto.h
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkb32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkb64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkc32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkc64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkx32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zbkx64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zknd32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zknd64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zkne32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zkne64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha256.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-32.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zknh-sha512-64.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zksed.c
&gt; &gt;  create mode 100644 gcc/testsuite/gcc.target/riscv/zksh.c
&gt; &gt;
&gt; &gt; --
&gt; &gt; 2.38.1.windows.1
&gt; &gt;
</shihua@iscas.ac.cn></shihua@iscas.ac.cn></kito.cheng@gmail.com>