Hi The test pr82989.c which was added in one of previous commits is failing for mthumb and big-endian configurations. The aim of this test was to check that NEON instructions are not being used for simple shift operations. The scanning of lsl and lsr instructions and checking its counts were just too restrictive for different configurations. So I have now simplified the test to only check for the absence of NEON instructions.
Testing: Only test case change so only tested the said test on differently configured toolchain. @Christophe can you confirm this patch fixes the failure for you? Thanks Sudi *** gcc/testsuite/ChangeLog *** 2018-03-21 Sudakshina Das <sudi....@arm.com> PR target/82989 * gcc.target/arm/pr82989.c: Change dg-scan-assembly directives.
diff --git a/gcc/testsuite/gcc.target/arm/pr82989.c b/gcc/testsuite/gcc.target/arm/pr82989.c index 6f74dba..8519c3f 100644 --- a/gcc/testsuite/gcc.target/arm/pr82989.c +++ b/gcc/testsuite/gcc.target/arm/pr82989.c @@ -13,26 +13,21 @@ void f_shr_imm (uint64_t *a) { *a += *a >> 32; } -/* { dg-final { scan-assembler-not "vshr*" } } */ void f_shr_reg (uint64_t *a, uint64_t b) { *a += *a >> b; } -/* { dg-final { scan-assembler-not "vshl*" } } */ -/* Only 2 times for f_shr_reg. f_shr_imm should not have any. */ -/* { dg-final { scan-assembler-times {lsr\tr[0-9]+, r[0-9]+, r[0-9]} 2 } } */ void f_shl_imm (uint64_t *a) { *a += *a << 32; } -/* { dg-final { scan-assembler-not "vshl*" } } */ void f_shl_reg (uint64_t *a, uint64_t b) { *a += *a << b; } /* { dg-final { scan-assembler-not "vshl*" } } */ -/* Only 2 times for f_shl_reg. f_shl_imm should not have any. */ -/* { dg-final { scan-assembler-times {lsl\tr[0-9]+, r[0-9]+, r[0-9]} 2 } } */ +/* { dg-final { scan-assembler-not "vshr*" } } */ +/* { dg-final { scan-assembler-not "vmov*" } } */