Plz drop those testcase which just contain inline asm in foo, that should belong to binutils's testsuite IMO.
On Thu, Apr 6, 2023 at 2:23 PM Jiawei <jia...@iscas.ac.cn> wrote: > > From: Charlie Keaney <charlie.kea...@embecosm.com> > > Add all ZC* extensions march args tests. > > Co-Authored by: Nandni Jamnadas <nandni.jamna...@embecosm.com> > Co-Authored by: Jiawei <jia...@iscas.ac.cn> > Co-Authored by: Mary Bennett <mary.benn...@embecosm.com> > Co-Authored by: Simon Cook <simon.c...@embecosm.com> > > gcc/testsuite/ChangeLog: > > * gcc.target/riscv/arch-20.c: New test. > * gcc.target/riscv/arch-21.c: New test. > * gcc.target/riscv/zc-zca-arch.c: New test. > * gcc.target/riscv/zc-zcb-arch.c: New test. > * gcc.target/riscv/zc-zcb-m-arch.c: New test. > * gcc.target/riscv/zc-zcb-zba-arch.c: New test. > * gcc.target/riscv/zc-zcb-zbb-arch.c: New test. > * gcc.target/riscv/zc-zcf-arch.c: New test. > * gcc.target/riscv/zc-zcmp-arch.c: New test. > * gcc.target/riscv/zc-zcmpe-arch.c: New test. > * gcc.target/riscv/zc-zcmt-arch.c: New test. > --- > gcc/testsuite/gcc.target/riscv/arch-20.c | 5 +++++ > gcc/testsuite/gcc.target/riscv/arch-21.c | 5 +++++ > gcc/testsuite/gcc.target/riscv/zc-zca-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcb-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcb-m-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcb-zba-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcb-zbb-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcf-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcmp-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcmpe-arch.c | 9 +++++++++ > gcc/testsuite/gcc.target/riscv/zc-zcmt-arch.c | 9 +++++++++ > 11 files changed, 91 insertions(+) > create mode 100644 gcc/testsuite/gcc.target/riscv/arch-20.c > create mode 100644 gcc/testsuite/gcc.target/riscv/arch-21.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zca-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcb-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcb-m-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcb-zba-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcb-zbb-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcf-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcmp-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcmpe-arch.c > create mode 100644 gcc/testsuite/gcc.target/riscv/zc-zcmt-arch.c > > diff --git a/gcc/testsuite/gcc.target/riscv/arch-20.c > b/gcc/testsuite/gcc.target/riscv/arch-20.c > new file mode 100644 > index 00000000000..3be4ade65a7 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/arch-20.c > @@ -0,0 +1,5 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv64i_zcf -mabi=lp64" } */ > +int foo() {} > +/* { dg-error "'-march=rv64i_zcf': zcf extension supports in rv32 only" "" { > target *-*-* } 0 } */ > +/* { dg-error "'-march=rv64i_zca_zcf': zcf extension supports in rv32 only" > "" { target *-*-* } 0 } */ > diff --git a/gcc/testsuite/gcc.target/riscv/arch-21.c > b/gcc/testsuite/gcc.target/riscv/arch-21.c > new file mode 100644 > index 00000000000..cecce06e474 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/arch-21.c > @@ -0,0 +1,5 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv64if_zce -mabi=lp64" } */ > +int foo() {} > +/* { dg-error "'-march=rv64if_zce': zcf extension supports in rv32 only" "" > { target *-*-* } 0 } */ > +/* { dg-error "'-march=rv64if_zca_zcb_zce_zcf_zcmp_zcmt': zcf extension > supports in rv32 only" "" { target *-*-* } 0 } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zca-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zca-arch.c > new file mode 100644 > index 00000000000..bcb8321e709 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zca-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zca -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.sw x9, 32(x10)"); > +} > + > +/* { dg-final { scan-assembler "c.sw x9, 32\\(x10\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcb-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcb-arch.c > new file mode 100644 > index 00000000000..54d4dff63ea > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcb-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zcb -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.lbu x9,1(x8)"); > +} > + > +/* { dg-final { scan-assembler "c.lbu x9,1\\(x8\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcb-m-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcb-m-arch.c > new file mode 100644 > index 00000000000..f23fe304607 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcb-m-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32im_zcb -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.lbu x9,1(x8)"); > +} > + > +/* { dg-final { scan-assembler "c.lbu x9,1\\(x8\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcb-zba-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcb-zba-arch.c > new file mode 100644 > index 00000000000..6b4a8762078 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcb-zba-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zcb_zba -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.lbu x9,1(x8)"); > +} > + > +/* { dg-final { scan-assembler "c.lbu x9,1\\(x8\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcb-zbb-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcb-zbb-arch.c > new file mode 100644 > index 00000000000..53f8dba80d3 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcb-zbb-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zcb_zbb -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.lbu x9,1(x8)"); > +} > + > +/* { dg-final { scan-assembler "c.lbu x9,1\\(x8\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcf-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcf-arch.c > new file mode 100644 > index 00000000000..dcdadc87b79 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcf-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zcf -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("c.flw fa0, 0(a0)"); > +} > + > +/* { dg-final { scan-assembler "c.flw fa0, 0\\(a0\\)" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcmp-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcmp-arch.c > new file mode 100644 > index 00000000000..17c54d6b2af > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcmp-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32i_zcb_zcmp -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("cm.push {ra,s0-s3},-32"); > +} > + > +/* { dg-final { scan-assembler "cm.push {ra,s0-s3},-32" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcmpe-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcmpe-arch.c > new file mode 100644 > index 00000000000..68547c9a820 > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcmpe-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32e_zcb_zcmp -mabi=ilp32e" } */ > + > +int foo() > +{ > + asm("cm.push {ra,s0-s3},-32"); > +} > + > +/* { dg-final { scan-assembler "cm.push {ra,s0-s3},-32" } } */ > diff --git a/gcc/testsuite/gcc.target/riscv/zc-zcmt-arch.c > b/gcc/testsuite/gcc.target/riscv/zc-zcmt-arch.c > new file mode 100644 > index 00000000000..133de0c250c > --- /dev/null > +++ b/gcc/testsuite/gcc.target/riscv/zc-zcmt-arch.c > @@ -0,0 +1,9 @@ > +/* { dg-do compile } */ > +/* { dg-options "-march=rv32im_zcmt -mabi=ilp32" } */ > + > +int foo() > +{ > + asm("cm.jt 0"); > +} > + > +/* { dg-final { scan-assembler "cm.jt 0" } } */ > -- > 2.25.1 >