From: Stefan Schulze Frielinghaus Date: Tue, 23 Apr 2024 11:29:10 +0000 (+0200) Subject: s390: testsuite: Xfail forwprop-4{0,1}.c X-Git-Tag: basepoints/gcc-15~49 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3d5699930fe6cfc595e5a920ab36a1bc065be534;p=thirdparty%2Fgcc.git 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. --- diff --git a/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c b/gcc/testsuite/gcc.dg/tree-ssa/forwprop-40.c index 7513497f5520..0c5233a68f4a 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 b1e75797a900..a1f08289dd69 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 3a5713d98691..3a55b2a4159c 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