aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXi Ruoyao <xry111@xry111.site>2024-01-23 19:58:21 +0800
committerXi Ruoyao <xry111@xry111.site>2024-03-04 17:47:32 +0800
commit889fbc9454e2d4e2b9a11a9e02b3b7e698edcd1c (patch)
tree1e3849700ff4effef8a1bfe564e41ef240a759d7
parentea1c16f95b8fbaba4a7f3663ff9933ebedfb92a5 (diff)
downloadgcc-889fbc9454e2d4e2b9a11a9e02b3b7e698edcd1c.zip
gcc-889fbc9454e2d4e2b9a11a9e02b3b7e698edcd1c.tar.gz
gcc-889fbc9454e2d4e2b9a11a9e02b3b7e698edcd1c.tar.bz2
testsuite: Make pr104992.c irrelated to target vector feature [PR113418]
The vect_int_mod target selector is evaluated with the options in DEFAULT_VECTCFLAGS in effect, but these options are not automatically passed to tests out of the vect directories. So this test fails on targets where integer vector modulo operation is supported but requiring an option to enable, for example LoongArch. In this test case, the only expected optimization not happened in original is in corge because it needs forward propogation. So we can scan the forwprop2 dump (where the vector operation is not expanded to scalars yet) instead of optimized, then we don't need to consider vect_int_mod or not. gcc/testsuite/ChangeLog: PR testsuite/113418 * gcc.dg/pr104992.c (dg-options): Use -fdump-tree-forwprop2 instead of -fdump-tree-optimized. (dg-final): Scan forwprop2 dump instead of optimized, and remove the use of vect_int_mod. * lib/target-supports.exp (check_effective_target_vect_int_mod): Remove because it's not used anymore.
-rw-r--r--gcc/testsuite/gcc.dg/pr104992.c5
-rw-r--r--gcc/testsuite/lib/target-supports.exp13
2 files changed, 2 insertions, 16 deletions
diff --git a/gcc/testsuite/gcc.dg/pr104992.c b/gcc/testsuite/gcc.dg/pr104992.c
index 82f8c75..6fd513d 100644
--- a/gcc/testsuite/gcc.dg/pr104992.c
+++ b/gcc/testsuite/gcc.dg/pr104992.c
@@ -1,6 +1,6 @@
/* PR tree-optimization/104992 */
/* { dg-do compile } */
-/* { dg-options "-O2 -Wno-psabi -fdump-tree-optimized" } */
+/* { dg-options "-O2 -Wno-psabi -fdump-tree-forwprop2" } */
#define vector __attribute__((vector_size(4*sizeof(int))))
@@ -54,5 +54,4 @@ __attribute__((noipa)) unsigned waldo (unsigned x, unsigned y, unsigned z) {
return x / y * z == x;
}
-/* { dg-final { scan-tree-dump-times " % " 9 "optimized" { target { ! vect_int_mod } } } } */
-/* { dg-final { scan-tree-dump-times " % " 6 "optimized" { target vect_int_mod } } } */
+/* { dg-final { scan-tree-dump-times " % " 6 "forwprop2" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 4138cc9..ae33c4f 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -9064,19 +9064,6 @@ proc check_effective_target_vect_long_mult { } {
return $answer
}
-# Return 1 if the target supports vector int modulus, 0 otherwise.
-
-proc check_effective_target_vect_int_mod { } {
- return [check_cached_effective_target_indexed vect_int_mod {
- expr { ([istarget powerpc*-*-*]
- && [check_effective_target_has_arch_pwr10])
- || [istarget amdgcn-*-*]
- || ([istarget loongarch*-*-*]
- && [check_effective_target_loongarch_sx])
- || ([istarget riscv*-*-*]
- && [check_effective_target_riscv_v]) }}]
-}
-
# Return 1 if the target supports vector even/odd elements extraction, 0 otherwise.
proc check_effective_target_vect_extract_even_odd { } {