On Tue, Jun 24, 2025 at 5:39 PM Jiawei <jia...@iscas.ac.cn> wrote: > > This patch adds support for the RISC-V Profiles RVA23S64 and RVB23S64. > > gcc/ChangeLog: > > * common/config/riscv/riscv-common.cc: New Profiles. > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/arch-rva23s.c: New test. > * gcc.target/riscv/arch-rvb23s.c: New test. > > --- > gcc/common/config/riscv/riscv-common.cc | 18 +++++++++++++++++- > gcc/testsuite/gcc.target/riscv/arch-rva23s.c | 14 ++++++++++++++ > gcc/testsuite/gcc.target/riscv/arch-rvb23s.c | 12 ++++++++++++ > 3 files changed, 43 insertions(+), 1 deletion(-) > create mode 100644 gcc/testsuite/gcc.target/riscv/arch-rva23s.c > create mode 100644 gcc/testsuite/gcc.target/riscv/arch-rvb23s.c > > diff --git a/gcc/common/config/riscv/riscv-common.cc > b/gcc/common/config/riscv/riscv-common.cc > index 3c25848ccd3..43a5ae5f449 100644 > --- a/gcc/common/config/riscv/riscv-common.cc > +++ b/gcc/common/config/riscv/riscv-common.cc > @@ -295,6 +295,15 @@ static const riscv_profiles riscv_profiles_table[] = > "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" > "_zfa_zawrs_supm"}, > > + /* RVA23S contains all mandatory base ISA for RVA23U64 and the privileged > + extensions as mandatory extensions. */ > + {"rva23s64", "rv64imafdcbv_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" > + "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" > + "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" > + "_zfa_zawrs_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt" > + "_svinval_svnapot_sstc_sscofpmf_ssnpm_ssu64xl_sha" > + }, > + > /* RVB23 contains all mandatory base ISA for RVA22U64 and the new extension > 'zihintntl,zicond,zimop,zcmop,zfa,zawrs' as mandatory > extensions. */ > @@ -303,7 +312,14 @@ static const riscv_profiles riscv_profiles_table[] = > "_zicboz_zfhmin_zkt_zihintntl_zicond_zimop_zcmop_zcb" > "_zfa_zawrs"}, > > - /* Currently we do not define S/M mode Profiles in gcc part. */ > + /* RVB23S contains all mandatory base ISA for RVB23U64 and the privileged > + extensions as mandatory extensions. */ > + {"rvb23s64", "rv64imafdcb_zicsr_zicntr_zihpm_ziccif_ziccrse_ziccamoa" > + "_zicclsm_zic64b_za64rs_zihintpause_zba_zbb_zbs_zicbom_zicbop" > + "_zicboz_zfhmin_zkt_zvfhmin_zvbb_zvkt_zihintntl_zicond_zimop_zcmop_zcb" > + "_zfa_zawrs_svbare_svade_ssccptr_sstvecd_sstvala_sscounterenw_svpbmt" > + "_svinval_svnapot_sstc_sscofpmf_ssu64xl" > + }, > > /* Terminate the list. */ > {NULL, NULL} > diff --git a/gcc/testsuite/gcc.target/riscv/arch-rva23s.c > b/gcc/testsuite/gcc.target/riscv/arch-rva23s.c > new file mode 100644 > index 00000000000..49b406caa1d > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/arch-rva23s.c > @@ -0,0 +1,14 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rva23s64 -mabi=lp64d" } */ > + > +void foo(){} > + > +/* { dg-final { scan-assembler-times ".attribute arch, > \"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0" > +"_b1p0_v1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0" > +"_ziccrse1p0_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0" > +"_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0" > +"_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zve64d1p0_zve64f1p0_zve64x1p0" > +"_zvfhmin1p0_zvkb1p0_zvkt1p0_zvl128b1p0_zvl32b1p0_zvl64b1p0_sha1p0_shcounterenw1p0" > +"_shgatpa1p0_shtvala1p0_shvsatpa1p0_shvstvala1p0_shvstvecd1p0_ssccptr1p0_sscofpmf1p0" > +"_sscounterenw1p0_ssnpm1p0_ssstateen1p0_sstc1p0_sstvala1p0_sstvecd1p0_ssu64xl1p0" > +"_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0\" 1} } */ > diff --git a/gcc/testsuite/gcc.target/riscv/arch-rvb23s.c > b/gcc/testsuite/gcc.target/riscv/arch-rvb23s.c > new file mode 100644 > index 00000000000..fdf2625b56d > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/arch-rvb23s.c > @@ -0,0 +1,12 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rva23s64 -mabi=lp64d" } */
rva23s64 -> rvb23s64 > + > +void foo(){} > + > +/* { dg-final { scan-assembler-times ".attribute arch, > \"rv64i2p1_m2p0_a2p1_f2p2_d2p2_c2p0" > +"_b1p0_zic64b1p0_zicbom1p0_zicbop1p0_zicboz1p0_ziccamoa1p0_ziccif1p0_zicclsm1p0_ziccrse1p0" > +"_zicntr2p0_zicond1p0_zicsr2p0_zihintntl1p0_zihintpause2p0_zihpm2p0_zimop1p0_zmmul1p0" > +"_za64rs1p0_zaamo1p0_zalrsc1p0_zawrs1p0_zfa1p0_zfhmin1p0_zca1p0_zcb1p0_zcd1p0_zcmop1p0" > +"_zba1p0_zbb1p0_zbs1p0_zkt1p0_zvbb1p0_zve32f1p0_zve32x1p0_zvfhmin1p0_zvkb1p0_zvkt1p0" > +"_zvl32b1p0_ssccptr1p0_sscofpmf1p0_sscounterenw1p0_sstc1p0_sstvala1p0_sstvecd1p0" > +"_ssu64xl1p0_svade1p0_svbare1p0_svinval1p0_svnapot1p0_svpbmt1p0\" 1} } */ > -- > 2.43.0 >