From bfeb36bd03c2168af263daa13370a20a96c42b5d Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Tue, 6 Apr 2021 12:44:51 +0200 Subject: [PATCH] testsuite: Fix up pr96573.c on aarch64 [PR96573] On Thu, Apr 01, 2021 at 02:16:55PM +0100, Alex Coplan via Gcc-patches wrote: > FYI, I'm seeing the new test failing on aarch64: > > PASS: gcc.dg/pr96573.c (test for excess errors) > FAIL: gcc.dg/pr96573.c scan-tree-dump optimized "__builtin_bswap" The vectorizer in the aarch64 case manages to emit a VEC_PERM_EXPR instead (which is just as efficient). So, do we want to go for the following (and/or perhaps also restrict the test to a couple of targets where it works? In my last distro build it failed only on aarch64-linux, while armv7hl-linux-gnueabi and {i686,x86_64,powerpc64le,s390x}-linux were fine)? 2021-04-06 Jakub Jelinek PR tree-optimization/96573 * gcc.dg/pr96573.c: Instead of __builtin_bswap accept also VEC_PERM_EXPR with bswapping permutation. --- gcc/testsuite/gcc.dg/pr96573.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gcc/testsuite/gcc.dg/pr96573.c b/gcc/testsuite/gcc.dg/pr96573.c index 3acf117f063..63db69df029 100644 --- a/gcc/testsuite/gcc.dg/pr96573.c +++ b/gcc/testsuite/gcc.dg/pr96573.c @@ -2,7 +2,7 @@ /* { dg-do compile { target { lp64 || ilp32 } } } */ /* { dg-require-effective-target bswap } */ /* { dg-options "-O3 -fdump-tree-optimized" } */ -/* { dg-final { scan-tree-dump "__builtin_bswap" "optimized" } } */ +/* { dg-final { scan-tree-dump "__builtin_bswap\|VEC_PERM_EXPR\[^\n\r]*7, 6, 5, 4, 3, 2, 1, 0" "optimized" } } */ typedef __SIZE_TYPE__ size_t;