diff options
author | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2024-04-23 13:29:10 +0200 |
---|---|---|
committer | Stefan Schulze Frielinghaus <stefansf@linux.ibm.com> | 2024-04-23 13:29:10 +0200 |
commit | 3d5699930fe6cfc595e5a920ab36a1bc065be534 (patch) | |
tree | 0d1e252a6b487d8c4a70aa500dfa1b19185e81a0 | |
parent | ca00bf02dcc37f9ff1028ca1d90e8b8d95d69683 (diff) | |
download | gcc-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.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/tree-ssa/forwprop-41.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/lib/target-supports.exp | 14 |
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 |