aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2024-04-23 13:29:10 +0200
committerStefan Schulze Frielinghaus <stefansf@linux.ibm.com>2024-04-23 13:29:10 +0200
commit3d5699930fe6cfc595e5a920ab36a1bc065be534 (patch)
tree0d1e252a6b487d8c4a70aa500dfa1b19185e81a0
parentca00bf02dcc37f9ff1028ca1d90e8b8d95d69683 (diff)
downloadgcc-3d5699930fe6cfc595e5a920ab36a1bc065be534.zip
gcc-3d5699930fe6cfc595e5a920ab36a1bc065be534.tar.gz
gcc-3d5699930fe6cfc595e5a920ab36a1bc065be534.tar.bz2
s390: testsuite: Xfail forwprop-4{0,1}.c
The tests fail on s390 since can_vec_perm_const_p fails and therefore the bit insert/ref survive which r14-3381-g27de9aa152141e aims for. Strictly speaking, the tests only fail in case the target supports vectors, i.e., for targets prior z13 or in case of -mesa the emulated vector operations are optimized out. Set to xfail and tracked by PR114802. gcc/testsuite/ChangeLog: * gcc.dg/tree-ssa/forwprop-40.c: Xfail for s390. * gcc.dg/tree-ssa/forwprop-41.c: Xfail for s390. * lib/target-supports.exp: Add target check s390_mvx.
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c4
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c4
-rw-r--r--gcc/testsuite/lib/target-supports.exp14
3 files changed, 18 insertions, 4 deletions
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
index 7513497..0c5233a 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c
@@ -10,5 +10,5 @@ vector int g(vector int a)
return a;
}
-/* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 0 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 0 "optimized" { xfail s390_mvx } } } Xfail: PR114802 */
+/* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail s390_mvx } } } Xfail: PR114802 */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
index b1e7579..a1f0828 100644
--- a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
+++ b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c
@@ -11,6 +11,6 @@ vector int g(vector int a, int c)
return a;
}
-/* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 1 "optimized" } } */
-/* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" } } */
+/* { dg-final { scan-tree-dump-times "BIT_INSERT_EXPR" 1 "optimized" { xfail s390_mvx } } } Xfail PR114802 */
+/* { dg-final { scan-tree-dump-times "BIT_FIELD_REF" 0 "optimized" { xfail s390_mvx } } } Xfail PR114802 */
/* { dg-final { scan-tree-dump-times "VEC_PERM_EXPR" 0 "optimized" } } */
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 3a5713d..3a55b2a 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -12392,6 +12392,20 @@ proc check_effective_target_profile_update_atomic {} {
} "-fprofile-update=atomic -fprofile-generate"]
}
+# Return 1 if the target has a vector facility.
+proc check_effective_target_s390_mvx { } {
+ if ![istarget s390*-*-*] then {
+ return 0;
+ }
+
+ return [check_no_compiler_messages_nocache s390_mvx assembly {
+ #if !defined __VX__
+ #error no vector facility.
+ #endif
+ int dummy;
+ } [current_compiler_flags]]
+}
+
# Return 1 if vector (va - vector add) instructions are understood by
# the assembler and can be executed. This also covers checking for
# the VX kernel feature. A kernel without that feature does not