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: Christoph Müllner <christoph.muellner@vrull.eu>
This commit is contained in:
parent
d0a333612b
commit
7c521f6751
29 changed files with 779 additions and 0 deletions
|
@ -102,6 +102,23 @@ static const riscv_implied_info_t riscv_implied_info[] =
|
|||
{"zvl32768b", "zvl16384b"},
|
||||
{"zvl65536b", "zvl32768b"},
|
||||
|
||||
{"zvkn", "zvkned"},
|
||||
{"zvkn", "zvknhb"},
|
||||
{"zvkn", "zvbb"},
|
||||
{"zvkn", "zvkt"},
|
||||
{"zvknc", "zvkn"},
|
||||
{"zvknc", "zvbc"},
|
||||
{"zvkng", "zvkn"},
|
||||
{"zvkng", "zvkg"},
|
||||
{"zvks", "zvksed"},
|
||||
{"zvks", "zvksh"},
|
||||
{"zvks", "zvbb"},
|
||||
{"zvks", "zvkt"},
|
||||
{"zvksc", "zvks"},
|
||||
{"zvksc", "zvbc"},
|
||||
{"zvksg", "zvks"},
|
||||
{"zvksg", "zvkg"},
|
||||
|
||||
{"zfh", "zfhmin"},
|
||||
{"zfhmin", "f"},
|
||||
{"zvfhmin", "zve32f"},
|
||||
|
@ -204,6 +221,22 @@ static const struct riscv_ext_version riscv_ext_version_table[] =
|
|||
{"zve64f", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zve64d", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
|
||||
{"zvbb", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvbc", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkg", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkned", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvknha", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvknhb", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksed", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksh", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkn", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvknc", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkng", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvks", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksc", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksg", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkt", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
|
||||
{"zvl32b", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvl64b", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvl128b", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
|
@ -250,6 +283,12 @@ static const struct riscv_ext_version riscv_combine_info[] =
|
|||
{"zk", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zkn", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zks", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkn", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvknc", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvkng", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvks", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksc", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
{"zvksg", ISA_SPEC_CLASS_NONE, 1, 0},
|
||||
/* Terminate the list. */
|
||||
{NULL, ISA_SPEC_CLASS_NONE, 0, 0}
|
||||
};
|
||||
|
@ -1251,6 +1290,22 @@ static const riscv_ext_flag_table_t riscv_ext_flag_table[] =
|
|||
{"zvfhmin", &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_16},
|
||||
{"zvfh", &gcc_options::x_riscv_vector_elen_flags, MASK_VECTOR_ELEN_FP_16},
|
||||
|
||||
{"zvbb", &gcc_options::x_riscv_zvb_subext, MASK_ZVBB},
|
||||
{"zvbc", &gcc_options::x_riscv_zvb_subext, MASK_ZVBC},
|
||||
{"zvkg", &gcc_options::x_riscv_zvk_subext, MASK_ZVKG},
|
||||
{"zvkned", &gcc_options::x_riscv_zvk_subext, MASK_ZVKNED},
|
||||
{"zvknha", &gcc_options::x_riscv_zvk_subext, MASK_ZVKNHA},
|
||||
{"zvknhb", &gcc_options::x_riscv_zvk_subext, MASK_ZVKNHB},
|
||||
{"zvksed", &gcc_options::x_riscv_zvk_subext, MASK_ZVKSED},
|
||||
{"zvksh", &gcc_options::x_riscv_zvk_subext, MASK_ZVKSH},
|
||||
{"zvkn", &gcc_options::x_riscv_zvk_subext, MASK_ZVKN},
|
||||
{"zvknc", &gcc_options::x_riscv_zvk_subext, MASK_ZVKNC},
|
||||
{"zvkng", &gcc_options::x_riscv_zvk_subext, MASK_ZVKNG},
|
||||
{"zvks", &gcc_options::x_riscv_zvk_subext, MASK_ZVKS},
|
||||
{"zvksc", &gcc_options::x_riscv_zvk_subext, MASK_ZVKSC},
|
||||
{"zvksg", &gcc_options::x_riscv_zvk_subext, MASK_ZVKSG},
|
||||
{"zvkt", &gcc_options::x_riscv_zvk_subext, MASK_ZVKT},
|
||||
|
||||
{"zvl32b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL32B},
|
||||
{"zvl64b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL64B},
|
||||
{"zvl128b", &gcc_options::x_riscv_zvl_flags, MASK_ZVL128B},
|
||||
|
|
|
@ -68,6 +68,13 @@ IMPLIED_EXT = {
|
|||
"zvl16384b" : ["zvl8192b"],
|
||||
"zvl32768b" : ["zvl16384b"],
|
||||
"zvl65536b" : ["zvl32768b"],
|
||||
|
||||
"zvkn" : ["zvkned", "zvknhb", "zvbb", "zvkt"],
|
||||
"zvknc" : ["zvkn", "zvbc"],
|
||||
"zvkng" : ["zvkn", "zvkg"],
|
||||
"zvks" : ["zvksed", "zvksh", "zvbb", "zvkt"],
|
||||
"zvksc" : ["zvks", "zvbc"],
|
||||
"zvksg" : ["zvks", "zvkg"],
|
||||
}
|
||||
|
||||
def arch_canonicalize(arch, isa_spec):
|
||||
|
|
|
@ -168,6 +168,40 @@ enum riscv_entity
|
|||
#define TARGET_VECTOR_ELEN_FP_16 \
|
||||
((riscv_vector_elen_flags & MASK_VECTOR_ELEN_FP_16) != 0)
|
||||
|
||||
#define MASK_ZVBB (1 << 0)
|
||||
#define MASK_ZVBC (1 << 1)
|
||||
|
||||
#define TARGET_ZVBB ((riscv_zvb_subext & MASK_ZVBB) != 0)
|
||||
#define TARGET_ZVBC ((riscv_zvb_subext & MASK_ZVBC) != 0)
|
||||
|
||||
#define MASK_ZVKG (1 << 0)
|
||||
#define MASK_ZVKNED (1 << 1)
|
||||
#define MASK_ZVKNHA (1 << 2)
|
||||
#define MASK_ZVKNHB (1 << 3)
|
||||
#define MASK_ZVKSED (1 << 4)
|
||||
#define MASK_ZVKSH (1 << 5)
|
||||
#define MASK_ZVKN (1 << 6)
|
||||
#define MASK_ZVKNC (1 << 7)
|
||||
#define MASK_ZVKNG (1 << 8)
|
||||
#define MASK_ZVKS (1 << 9)
|
||||
#define MASK_ZVKSC (1 << 10)
|
||||
#define MASK_ZVKSG (1 << 11)
|
||||
#define MASK_ZVKT (1 << 12)
|
||||
|
||||
#define TARGET_ZVKG ((riscv_zvk_subext & MASK_ZVKG) != 0)
|
||||
#define TARGET_ZVKNED ((riscv_zvk_subext & MASK_ZVKNED) != 0)
|
||||
#define TARGET_ZVKNHA ((riscv_zvk_subext & MASK_ZVKNHA) != 0)
|
||||
#define TARGET_ZVKNHB ((riscv_zvk_subext & MASK_ZVKNHB) != 0)
|
||||
#define TARGET_ZVKSED ((riscv_zvk_subext & MASK_ZVKSED) != 0)
|
||||
#define TARGET_ZVKSH ((riscv_zvk_subext & MASK_ZVKSH) != 0)
|
||||
#define TARGET_ZVKN ((riscv_zvk_subext & MASK_ZVKN) != 0)
|
||||
#define TARGET_ZVKNC ((riscv_zvk_subext & MASK_ZVKNC) != 0)
|
||||
#define TARGET_ZVKNG ((riscv_zvk_subext & MASK_ZVKNG) != 0)
|
||||
#define TARGET_ZVKS ((riscv_zvk_subext & MASK_ZVKS) != 0)
|
||||
#define TARGET_ZVKSC ((riscv_zvk_subext & MASK_ZVKSC) != 0)
|
||||
#define TARGET_ZVKSG ((riscv_zvk_subext & MASK_ZVKSG) != 0)
|
||||
#define TARGET_ZVKT ((riscv_zvk_subext & MASK_ZVKT) != 0)
|
||||
|
||||
#define MASK_ZVL32B (1 << 0)
|
||||
#define MASK_ZVL64B (1 << 1)
|
||||
#define MASK_ZVL128B (1 << 2)
|
||||
|
|
|
@ -223,6 +223,12 @@ int riscv_vector_elen_flags
|
|||
TargetVariable
|
||||
int riscv_zvl_flags
|
||||
|
||||
TargetVariable
|
||||
int riscv_zvb_subext
|
||||
|
||||
TargetVariable
|
||||
int riscv_zvk_subext
|
||||
|
||||
TargetVariable
|
||||
int riscv_zicmo_subext
|
||||
|
||||
|
|
13
gcc/testsuite/gcc.target/riscv/zvbb.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvbb.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvbb" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvbb" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvbc.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvbc.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvbc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvbc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvkg.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvkg.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
29
gcc/testsuite/gcc.target/riscv/zvkn-1.c
Normal file
29
gcc/testsuite/gcc.target/riscv/zvkn-1.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvbb_zvkt" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvbb_zvkt" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
29
gcc/testsuite/gcc.target/riscv/zvkn.c
Normal file
29
gcc/testsuite/gcc.target/riscv/zvkn.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkn" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkn" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvknc-1.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvknc-1.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvbb_zvkt_zvbc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvbb_zvkt_zvbc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvknc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvknc-2.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvknc-2.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkn_zvbc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkn_zvbc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvknc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvknc.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvknc.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvknc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvknc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvknc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvkned.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvkned.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkned" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkned" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvkng-1.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvkng-1.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkned_zvknhb_zvbb_zvkt_zvkg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkned_zvknhb_zvbb_zvkt_zvkg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkng
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvkng-2.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvkng-2.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkn_zvkg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkn_zvkg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkng
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvkng.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvkng.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkng" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkng" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkng
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkn
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkned
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvknha.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvknha.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvknha" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvknha" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvknha
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvknhb.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvknhb.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvknhb" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvknhb" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvknhb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
29
gcc/testsuite/gcc.target/riscv/zvks-1.c
Normal file
29
gcc/testsuite/gcc.target/riscv/zvks-1.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksed_zvksh_zvbb_zvkt" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksed_zvksh_zvbb_zvkt" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
29
gcc/testsuite/gcc.target/riscv/zvks.c
Normal file
29
gcc/testsuite/gcc.target/riscv/zvks.c
Normal file
|
@ -0,0 +1,29 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvks" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvks" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksc-1.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksc-1.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksed_zvksh_zvbb_zvkt_zvbc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksed_zvksh_zvbb_zvkt_zvbc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksc-2.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksc-2.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvks_zvbc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvks_zvbc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksc.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksc.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksc" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksc" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbc
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvksed.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvksed.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksed" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksed" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksg-1.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksg-1.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksed_zvksh_zvbb_zvkt_zvkg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksed_zvksh_zvbb_zvkt_zvkg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksg-2.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksg-2.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvks_zvkg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvks_zvkg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
37
gcc/testsuite/gcc.target/riscv/zvksg.c
Normal file
37
gcc/testsuite/gcc.target/riscv/zvksg.c
Normal file
|
@ -0,0 +1,37 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksg" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksg" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvks
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksed
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvbb
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
#ifndef __riscv_zvkg
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvksh.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvksh.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvksh" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvksh" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvksh
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
13
gcc/testsuite/gcc.target/riscv/zvkt.c
Normal file
13
gcc/testsuite/gcc.target/riscv/zvkt.c
Normal file
|
@ -0,0 +1,13 @@
|
|||
/* { dg-do compile } */
|
||||
/* { dg-options "-march=rv64gc_zvkt" { target { rv64 } } } */
|
||||
/* { dg-options "-march=rv32gc_zvkt" { target { rv32 } } } */
|
||||
|
||||
#ifndef __riscv_zvkt
|
||||
#error Feature macro not defined
|
||||
#endif
|
||||
|
||||
int
|
||||
foo (int a)
|
||||
{
|
||||
return a;
|
||||
}
|
Loading…
Add table
Reference in a new issue