[PATCH v2 0/2] RISC-V: add gcc support for Scalar Cryptography v1.0.0-rc6

2021-11-22 Thread siyu
From: SiYu Wu This patch add gcc backend support for RISC-V Scalar Cryptography Extension (k-ext), including machine description, builtins defines and testcases for each k-ext's subset. A note about Zbkx: The Zbkx should be implemented in bitmanip's Zbp, but since zbp is not included

[PATCH v2 1/2] RISC-V: Add option defines for Scalar Cryptography

2021-11-22 Thread siyu
From: SiYu Wu gcc/ChangeLog: 2021-11-21 SiYu Wu * common/config/riscv/riscv-common.c (riscv_ext_version_table): Add zbk* and zk*. * config/riscv/riscv-opts.h (MASK_ZBKB): New. (MASK_ZBKC): Ditto. (MASK_ZBKX): Ditto. (MASK_ZKNE): Ditto

[PATCH v2 2/2] RISC-V: Add implied defines of Zk, Zkn and Zks

2021-11-22 Thread siyu
From: SiYu Wu gcc/ChangeLog: 2021-11-22 SiYu Wu * common/config/riscv/riscv-common.c (riscv_implied_info): Add K-ext related entry. (riscv_supported_std_ext): Add 'k'. * config/riscv/arch-canonicalize (CANONICAL_ORDER): Add 'k'. (IMPLIED_EXT): Add K

[PATCH 21/21] [crypto]: add testcases for Zbkx

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/testsuite/gcc.target/riscv/Zbkx.c | 17 + 1 file changed, 17 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/Zbkx.c diff --git a/gcc/testsuite/gcc.target/riscv/Zbkx.c b/gcc/testsuite/gcc.target/riscv/Zbkx.c new file mode 100644 index

[PATCH 12/21] [crypto]: add machine description for Zksh

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 2 ++ gcc/config/riscv/crypto.md | 19 +++ gcc/config/riscv/riscv-opts.h | 2 ++ 3 files changed, 23 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv

[PATCH 09/21] [crypto]: add machine description for Zksed

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 2 ++ gcc/config/riscv/crypto.md | 21 + gcc/config/riscv/riscv-opts.h | 2 ++ 3 files changed, 25 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv

[PATCH 13/21] [crypto]: add builtins for Zksh

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/config/riscv/riscv-builtins-crypto.def | 6 ++ gcc/config/riscv/riscv-builtins.c | 2 ++ 2 files changed, 8 insertions(+) diff --git a/gcc/config/riscv/riscv-builtins-crypto.def b/gcc/config/riscv/riscv-builtins-crypto.def index 47bfff80f2e..abef52057a0

[PATCH 14/21] [crypto]: add testcases for Zksh

2021-10-31 Thread siyu
From: SiYu Wu Co-authored-by: Shihua Liao --- gcc/testsuite/gcc.target/riscv/Zksh-sm3.c | 15 +++ 1 file changed, 15 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/Zksh-sm3.c diff --git a/gcc/testsuite/gcc.target/riscv/Zksh-sm3.c b/gcc/testsuite/gcc.target/riscv

[PATCH 18/21] change z* subset assert to allow "zk"

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index 4ed2a1f662a..e801fa149a2 100644 --- a/gcc/common/config/riscv/riscv-common.c +++ b

[PATCH 20/21] [crypto]: add builtins for Zbkx

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/config/riscv/riscv-builtins-crypto.def | 6 ++ gcc/config/riscv/riscv-builtins.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gcc/config/riscv/riscv-builtins-crypto.def b/gcc/config/riscv/riscv-builtins-crypto.def index abef52057a0..e8c36789fe5

[PATCH 17/21] [crypto]: add implied defines of Zk, Zkn and Zks

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 16 +++- gcc/config/riscv/arch-canonicalize | 16 +++- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index

[PATCH 16/21] [crypto]: add option defines for Zbkb, Zbkc and Zbkx

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 6 ++ gcc/config/riscv/riscv-opts.h | 6 ++ 2 files changed, 12 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index b2b85180ffe..18c09591c42 100644

[PATCH 11/21] [crypto]: add testcases for Zksed

2021-10-31 Thread siyu
From: SiYu Wu Co-authored-by: Shihua Liao --- gcc/testsuite/gcc.target/riscv/Zksed-sm4.c | 17 + 1 file changed, 17 insertions(+) create mode 100644 gcc/testsuite/gcc.target/riscv/Zksed-sm4.c diff --git a/gcc/testsuite/gcc.target/riscv/Zksed-sm4.c b/gcc/testsuite/gcc.target

[PATCH 10/21] [crypto]: add builtins for Zksed

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/config/riscv/riscv-builtins-crypto.def | 6 ++ gcc/config/riscv/riscv-builtins.c | 3 +++ 2 files changed, 9 insertions(+) diff --git a/gcc/config/riscv/riscv-builtins-crypto.def b/gcc/config/riscv/riscv-builtins-crypto.def index ca008929927..47bfff80f2e

[PATCH 19/21] [crypto]: add machine description for Zbkx

2021-10-31 Thread siyu
From: SiYu Wu NOTE: The Zbkx should be implemented in bitmanip's Zbp, but since zbp is not included in the bitmanip spec v1.0, and crypto's v1.0 release will earlier than bitmanip's next release, so for now we implementing it here. --- gcc/config/riscv/crypto.md | 27

[PATCH 03/21] [crypto]: add machine description for Zknd and Zkne

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 6 ++ gcc/config/riscv/crypto.md | 129 + gcc/config/riscv/riscv-opts.h | 6 ++ gcc/config/riscv/riscv.md | 2 + gcc/config/riscv/riscv.opt | 3 + 5 files

[PATCH 15/21] [crypto]: add option defines for Zkr and Zkt

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 3 +++ gcc/config/riscv/riscv-opts.h | 3 +++ 2 files changed, 6 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config/riscv/riscv-common.c index 8f4f4472690..b2b85180ffe 100644 --- a/gcc

[PATCH 08/21] [crypto]: add testcases for Zknh

2021-10-31 Thread siyu
From: SiYu Wu Co-authored-by: Shihua Liao --- gcc/testsuite/gcc.target/riscv/Zknh-sha256.c | 27 + .../gcc.target/riscv/Zknh-sha512-01.c | 40 +++ .../gcc.target/riscv/Zknh-sha512-02.c | 28 + 3 files changed, 95 insertions(+) create

[PATCH 02/21] Fix attribute bugs due to zicsr/zifencei

2021-10-31 Thread siyu
From: jiawei --- gcc/config/riscv/arch-canonicalize | 2 ++ gcc/config/riscv/riscv.md | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/gcc/config/riscv/arch-canonicalize b/gcc/config/riscv/arch-canonicalize index c7df3c8a313..e2feb7e85cd 100755 ---

[PATCH 00/21] RISC-V: add gcc support for Scalar Cryptography v1.0.0-rc5

2021-10-31 Thread siyu
From: SiYu Wu This patch add gcc backend support for RISC-V Scalar Cryptography Extension (k-ext), including machine description, builtins defines and testcases for each k-ext's subset. A note about Zbkx: The Zbkx should be implemented in bitmanip's Zbp, but since zbp is not included

[PATCH 06/21] [crypto]: add machine description for Zknh

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/common/config/riscv/riscv-common.c | 2 + gcc/config/riscv/crypto.md | 123 + gcc/config/riscv/riscv-opts.h | 2 + 3 files changed, 127 insertions(+) diff --git a/gcc/common/config/riscv/riscv-common.c b/gcc/common/config

[PATCH 04/21] [crypto]: add builtins for Zknd and Zkne

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/config/riscv/riscv-builtins-crypto.def | 34 ++ gcc/config/riscv/riscv-builtins.c | 15 ++ gcc/config/riscv/riscv-ftypes.def | 3 ++ 3 files changed, 52 insertions(+) create mode 100644 gcc/config/riscv/riscv-builtins

[PATCH 07/21] [crypto]: add builtins for Zknh

2021-10-31 Thread siyu
From: SiYu Wu --- gcc/config/riscv/riscv-builtins-crypto.def | 24 ++ gcc/config/riscv/riscv-builtins.c | 2 ++ gcc/config/riscv/riscv-ftypes.def | 3 +++ 3 files changed, 29 insertions(+) diff --git a/gcc/config/riscv/riscv-builtins-crypto.def b/gcc

[PATCH 01/21] Fix riscv_expand_block_move

2021-10-31 Thread siyu
From: linsinan1995 <47880367+linsinan1...@users.noreply.github.com> --- gcc/config/riscv/riscv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/config/riscv/riscv.c b/gcc/config/riscv/riscv.c index 6aef3d3a6cf..0529b6d60cd 100644 --- a/gcc/config/riscv/riscv.c +++

[PATCH 05/21] [crypto]: add testcases for Zknd and Zkne

2021-10-31 Thread siyu
From: SiYu Wu Co-authored-by: Shihua Liao --- gcc/testsuite/gcc.target/riscv/Zknd-aes-01.c | 15 +++ gcc/testsuite/gcc.target/riscv/Zknd-aes-02.c | 21 +++ gcc/testsuite/gcc.target/riscv/Zkne-aes-01.c | 15 +++ gcc/testsuite/gcc.target/riscv/Zkne-aes-02.c | 27