[gcc r17-2377] RISC-V: Add test cases for vsext.vf8 reg overlap

Pan Li via Gcc-cvs <[email protected]>
Newsgroups gmane.comp.gcc.cvs
Message-ID <[email protected]>
https://gcc.gnu.org/g:f1c03c18ef6f229bffb6da1834b80031b72fbc84

commit r17-2377-gf1c03c18ef6f229bffb6da1834b80031b72fbc84
Author: Pan Li <[email protected]>
Date:   Sat Jul 11 22:34:29 2026 +0800

    RISC-V: Add test cases for vsext.vf8 reg overlap
    
    Add test cases for vsext.vf8 register group overlap, please
    note it is not overlap as much as possible.
    
    gcc/testsuite/ChangeLog:
    
            * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c: New test.
            * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c: New test.
            * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c: New test.
            * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c: New test.
    
    Signed-off-by: Pan Li <[email protected]>

Diff:
---
 .../riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c | 17 +++++++++++++++++
 .../rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c      | 19 +++++++++++++++++++
 .../rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c      | 19 +++++++++++++++++++
 .../rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c      | 19 +++++++++++++++++++
 4 files changed, 74 insertions(+)

diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c
new file mode 100644
index 000000000000..ad9c7550c0a2
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-m1.c
@@ -0,0 +1,17 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+
+#include "group_overlap.h"
+
+DEF_GROUP_OVERLAP_UNARY_0(
+  __riscv_vsetvlmax_e8m1,
+  vint8m1_t,
+  vint64m8_t,
+  __riscv_vle8_v_i8m1,
+  __riscv_vsext_vf8_i64m8,
+  __riscv_vse64_v_i64m8,
+  vsext_vf,
+  LOOP_UNARY_BODY_X4)
+
+/* { dg-final { scan-assembler-times {vsext\.vf8\s+v0,v7([^0-9]|$)} 1 } } */
+/* { dg-final { scan-assembler-times {vsext\.vf8\s+v8,v15} 1 } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c
new file mode 100644
index 000000000000..9dc12bf12689
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf2.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+
+#include "group_overlap.h"
+
+DEF_GROUP_OVERLAP_UNARY_0(
+  __riscv_vsetvlmax_e8m1,
+  vint8mf2_t,
+  vint64m4_t,
+  __riscv_vle8_v_i8mf2,
+  __riscv_vsext_vf8_i64m4,
+  __riscv_vse64_v_i64m4,
+  vsext_vf,
+  LOOP_UNARY_BODY_X8)
+
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c
new file mode 100644
index 000000000000..8834c30f5cd4
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf4.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+
+#include "group_overlap.h"
+
+DEF_GROUP_OVERLAP_UNARY_0(
+  __riscv_vsetvlmax_e8m1,
+  vint8mf4_t,
+  vint64m2_t,
+  __riscv_vle8_v_i8mf4,
+  __riscv_vsext_vf8_i64m2,
+  __riscv_vse64_v_i64m2,
+  vsext_vf,
+  LOOP_UNARY_BODY_X16)
+
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c
new file mode 100644
index 000000000000..0fe4c6450e26
--- /dev/null
+++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf8-i8-mf8.c
@@ -0,0 +1,19 @@
+/* { dg-do compile } */
+/* { dg-options "-march=rv64gcv -mabi=lp64d" } */
+
+#include "group_overlap.h"
+
+DEF_GROUP_OVERLAP_UNARY_0(
+  __riscv_vsetvlmax_e8m1,
+  vint8mf8_t,
+  vint64m1_t,
+  __riscv_vle8_v_i8mf8,
+  __riscv_vsext_vf8_i64m1,
+  __riscv_vse64_v_i64m1,
+  vsext_vf,
+  LOOP_UNARY_BODY_X16)
+
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v0,v7([^0-9]|$)} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v8,v15} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v16,v23} } } */
+/* { dg-final { scan-assembler-not {vsext\.vf8\s+v24,v31} } } */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.