From: Pan Li Date: Wed, 8 Jul 2026 05:57:43 +0000 (+0800) Subject: RISC-V: Adjust the scan asm for v[sz]ext.vf2 for v1 and v12 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cc621069b211cccbb7b8e0e7fc5c1138ffd4704a;p=thirdparty%2Fgcc.git RISC-V: Adjust the scan asm for v[sz]ext.vf2 for v1 and v12 The previous match v1 may match the v12 as well, therefore add the non-num boundary. gcc/testsuite/ChangeLog: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf4.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m1.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-mf2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m1.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf2.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf4.c: * gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf8.c: Signed-off-by: Pan Li --- diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c index 6b59a0da8ee..6508a99b960 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m1.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1} 1 } } */ -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c index 0396046a7b1..6b8c9935d2f 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m2.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X8) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2([^0-9]|$)} 1 } } */ /* { dg-final { scan-assembler-times {vsext\.vf2\s+v4,v6} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c index 1670668d04b..7aded370306 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-m4.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X4) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v4} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v4([^0-9]|$)} 1 } } */ /* { dg-final { scan-assembler-times {vsext\.vf2\s+v8,v12} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf2.c index e700eb532a9..c9c6cb83565 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf2.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf4.c index ca48d17e13d..4f22473dcd0 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf4.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i16-mf4.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m1.c index 461f4ef6b1a..c2d2e38cd28 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m1.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1} 1 } } */ -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m2.c index 6c7d8a5193b..e8d61fa50c3 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-m2.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X8) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2([^0-9]|$)} 1 } } */ /* { dg-final { scan-assembler-times {vsext\.vf2\s+v4,v6} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-mf2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-mf2.c index 4144306df4e..4faf542eff2 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-mf2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i32-mf2.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m1.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m1.c index 7a4ecd72d18..381cf6934fb 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m1.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m1.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1} 1 } } */ -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v1([^0-9]|$)} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v2,v3([^0-9]|$)} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m2.c index 318360f9374..a292cfb8370 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-m2.c @@ -13,5 +13,5 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X8) -/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2} 1 } } */ +/* { dg-final { scan-assembler-times {vsext\.vf2\s+v0,v2([^0-9]|$)} 1 } } */ /* { dg-final { scan-assembler-times {vsext\.vf2\s+v4,v6} 1 } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf2.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf2.c index fde319ec37a..ab9b0307058 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf2.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf2.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf4.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf4.c index 1a1922abef4..023304b6f8a 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf4.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf4.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */ diff --git a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf8.c b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf8.c index 49b56468cc9..4db324051ab 100644 --- a/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf8.c +++ b/gcc/testsuite/gcc.target/riscv/rvv/autovec/group_overlap/vsext_vf2-i8-mf8.c @@ -13,8 +13,8 @@ DEF_GROUP_OVERLAP_UNARY_0( vsext_vf, LOOP_UNARY_BODY_X16) -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1} } } */ -/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v0,v1([^0-9]|$)} } } */ +/* { dg-final { scan-assembler-not {vsext\.vf2\s+v2,v3([^0-9]|$)} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v4,v5} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v6,v7} } } */ /* { dg-final { scan-assembler-not {vsext\.vf2\s+v8,v9} } } */