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

Reply via email to