The Zve32x extension depends on the Zicsr extension. Currently, enabling Zve32x alone does not automatically imply Zicsr in GCC.
gcc/ChangeLog: * common/config/riscv/riscv-common.cc: Add Zve32x depends on Zicsr gcc/testsuite/ChangeLog: * gcc.target/riscv/predef-19.c: set the march to rv64i_zve32x instead of rv64gc_zve32x to avoid Zicsr implied by g Signed-off-by: Jerry Zhang Jian <jerry.zhangj...@sifive.com> --- gcc/common/config/riscv/riscv-common.cc | 1 + gcc/testsuite/gcc.target/riscv/predef-19.c | 34 ++-------------------- 2 files changed, 4 insertions(+), 31 deletions(-) diff --git a/gcc/common/config/riscv/riscv-common.cc b/gcc/common/config/riscv/riscv-common.cc index 15df22d5377..145a0f2bd95 100644 --- a/gcc/common/config/riscv/riscv-common.cc +++ b/gcc/common/config/riscv/riscv-common.cc @@ -137,6 +137,7 @@ static const riscv_implied_info_t riscv_implied_info[] = {"zve64f", "f"}, {"zve64d", "d"}, + {"zve32x", "zicsr"}, {"zve32x", "zvl32b"}, {"zve32f", "zve32x"}, {"zve32f", "zvl32b"}, diff --git a/gcc/testsuite/gcc.target/riscv/predef-19.c b/gcc/testsuite/gcc.target/riscv/predef-19.c index 2b90702192b..c2e12b6040c 100644 --- a/gcc/testsuite/gcc.target/riscv/predef-19.c +++ b/gcc/testsuite/gcc.target/riscv/predef-19.c @@ -1,5 +1,5 @@ /* { dg-do compile } */ -/* { dg-options "-O2 -march=rv64gc_zve32x -mabi=lp64d -mcmodel=medlow -misa-spec=2.2" } */ +/* { dg-options "-O2 -march=rv64i_zve32x -mabi=lp64 -mcmodel=medlow -misa-spec=2.2" } */ int main () { @@ -15,40 +15,12 @@ int main () { #error "__riscv_i" #endif -#if !defined(__riscv_c) -#error "__riscv_c" -#endif - #if defined(__riscv_e) #error "__riscv_e" #endif -#if !defined(__riscv_a) -#error "__riscv_a" -#endif - -#if !defined(__riscv_m) -#error "__riscv_m" -#endif - -#if !defined(__riscv_f) -#error "__riscv_f" -#endif - -#if !defined(__riscv_d) -#error "__riscv_d" -#endif - -#if defined(__riscv_v) -#error "__riscv_v" -#endif - -#if defined(__riscv_zvl128b) -#error "__riscv_zvl128b" -#endif - -#if defined(__riscv_zvl64b) -#error "__riscv_zvl64b" +#if !defined(__riscv_zicsr) +#error "__riscv_zicsr" #endif #if !defined(__riscv_zvl32b) -- 2.49.0