Skip to content
Snippets Groups Projects
Commit 7c521f67 authored by Christoph Müllner's avatar Christoph Müllner Committed by Philipp Tomsich
Browse files

RISC-V: Add support for vector crypto extensions

This series adds basic support for the vector crypto extensions:
  * Zvbb
  * Zvbc
  * Zvkg
  * Zvkned
  * Zvkhn[a,b]
  * Zvksed
  * Zvksh
  * Zvkn
  * Zvknc
  * Zvkng
  * Zvks
  * Zvksc
  * Zvksg
  * Zvkt

This patch is based on the v20230620 version of the Vector Cryptography
specification. The specification is frozen and can be found here:
  https://github.com/riscv/riscv-crypto/releases/tag/v20230620



Binutils support is merged as 9fdc1b157b6e72f7dd98851a240c5fdb386a558e.
All extensions come with (passing) tests for the feature test macros.

gcc/ChangeLog:

	* common/config/riscv/riscv-common.cc: Add support for zvbb,
	zvbc, zvkg, zvkned, zvknha, zvknhb, zvksed, zvksh, zvkn,
	zvknc, zvkng, zvks, zvksc, zvksg, zvkt and the implied subsets.
	* config/riscv/arch-canonicalize: Add canonicalization info for
	zvkn, zvknc, zvkng, zvks, zvksc, zvksg.
	* config/riscv/riscv-opts.h (MASK_ZVBB): New macro.
	(MASK_ZVBC): Likewise.
	(TARGET_ZVBB): Likewise.
	(TARGET_ZVBC): Likewise.
	(MASK_ZVKG): Likewise.
	(MASK_ZVKNED): Likewise.
	(MASK_ZVKNHA): Likewise.
	(MASK_ZVKNHB): Likewise.
	(MASK_ZVKSED): Likewise.
	(MASK_ZVKSH): Likewise.
	(MASK_ZVKN): Likewise.
	(MASK_ZVKNC): Likewise.
	(MASK_ZVKNG): Likewise.
	(MASK_ZVKS): Likewise.
	(MASK_ZVKSC): Likewise.
	(MASK_ZVKSG): Likewise.
	(MASK_ZVKT): Likewise.
	(TARGET_ZVKG): Likewise.
	(TARGET_ZVKNED): Likewise.
	(TARGET_ZVKNHA): Likewise.
	(TARGET_ZVKNHB): Likewise.
	(TARGET_ZVKSED): Likewise.
	(TARGET_ZVKSH): Likewise.
	(TARGET_ZVKN): Likewise.
	(TARGET_ZVKNC): Likewise.
	(TARGET_ZVKNG): Likewise.
	(TARGET_ZVKS): Likewise.
	(TARGET_ZVKSC): Likewise.
	(TARGET_ZVKSG): Likewise.
	(TARGET_ZVKT): Likewise.
	* config/riscv/riscv.opt: Introduction of riscv_zv{b,k}_subext.

gcc/testsuite/ChangeLog:

	* gcc.target/riscv/zvbb.c: New test.
	* gcc.target/riscv/zvbc.c: New test.
	* gcc.target/riscv/zvkg.c: New test.
	* gcc.target/riscv/zvkn-1.c: New test.
	* gcc.target/riscv/zvkn.c: New test.
	* gcc.target/riscv/zvknc-1.c: New test.
	* gcc.target/riscv/zvknc-2.c: New test.
	* gcc.target/riscv/zvknc.c: New test.
	* gcc.target/riscv/zvkned.c: New test.
	* gcc.target/riscv/zvkng-1.c: New test.
	* gcc.target/riscv/zvkng-2.c: New test.
	* gcc.target/riscv/zvkng.c: New test.
	* gcc.target/riscv/zvknha.c: New test.
	* gcc.target/riscv/zvknhb.c: New test.
	* gcc.target/riscv/zvks-1.c: New test.
	* gcc.target/riscv/zvks.c: New test.
	* gcc.target/riscv/zvksc-1.c: New test.
	* gcc.target/riscv/zvksc-2.c: New test.
	* gcc.target/riscv/zvksc.c: New test.
	* gcc.target/riscv/zvksed.c: New test.
	* gcc.target/riscv/zvksg-1.c: New test.
	* gcc.target/riscv/zvksg-2.c: New test.
	* gcc.target/riscv/zvksg.c: New test.
	* gcc.target/riscv/zvksh.c: New test.
	* gcc.target/riscv/zvkt.c: New test.

Signed-off-by: default avatarChristoph Müllner <christoph.muellner@vrull.eu>
parent d0a33361
No related branches found
No related tags found
Loading
Showing
with 518 additions and 0 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment