On 20/11/17 14:14, Christophe Lyon wrote:
Hi,

On 17 November 2017 at 12:12, Kyrill  Tkachov
<kyrylo.tkac...@foss.arm.com> wrote:
On 17/11/17 10:45, Sudi Das wrote:
Hi Kyrill

Thanks I have made the change.

Thanks Sudi, I've committed this on your behalf with r254863.

Kyrill


Sudi



From: Kyrill Tkachov <kyrylo.tkac...@foss.arm.com>
Sent: Thursday, November 16, 2017 5:03 PM
To: Sudi Das; gcc-patches@gcc.gnu.org
Cc: nd; Ramana Radhakrishnan; Richard Earnshaw
Subject: Re: [PATCH][ARM] Fix test armv8_2-fp16-move-1.c

Hi Sudi,

On 16/11/17 16:37, Sudi Das wrote:
Hi

This patch fixes the test case armv8_2-fp16-move-1.c for
arm-none-linux-gnueabihf where 2 of the scan-assembler directives were
failing. We now generate less vmov between core and VFP registers.
Thus changing those directives to reflect that.

Is this ok for trunk?
If yes could someone commit it on my behalf?

Sudi


*** gcc/testsuite/ChangeLog ***

2017-11-16  Sudakshina Das  <sudi....@arm.com>

           * gcc.target/arm/armv8_2-fp16-move-1.c: Edit vmov
scan-assembler
           directives.

diff --git a/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
b/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
index bb4e68f..0ed8560 100644
--- a/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
+++ b/gcc/testsuite/gcc.target/arm/armv8_2-fp16-move-1.c
@@ -101,8 +101,8 @@ test_select_8 (__fp16 a, __fp16 b, __fp16 c)
    /* { dg-final { scan-assembler-times {vselgt\.f16\ts[0-9]+, s[0-9]+,
s[0-9]+} 1 } }  */
    /* { dg-final { scan-assembler-times {vselge\.f16\ts[0-9]+, s[0-9]+,
s[0-9]+} 1 } }  */
    -/* { dg-final { scan-assembler-times {vmov\.f16\ts[0-9]+, r[0-9]+} 4 }
}  */
-/* { dg-final { scan-assembler-times {vmov\.f16\tr[0-9]+, s[0-9]+} 4 } }
*/
+/* { dg-final { scan-assembler-times {vmov\.f16\ts[0-9]+, r[0-9]+} 2 } }
*/
+/* { dg-final { scan-assembler-times {vmov\ts[0-9]+, s[0-9]+} 4 } }  */
    Some of the moves between core and fp registers were the result of
inefficient codegen and in hindsight
scanning for them was not very useful. Now that we emit only the required
ones I think scanning for the plain
vmovs between two S-registers doesn't test anything useful.
So can you please just remove the second scan-assembler directive here?

You are probably already aware of that: the tests fail on
arm-none-linux-gnueabi/arm-none-eabi
FAIL: gcc.target/arm/armv8_2-fp16-move-1.c scan-assembler-times
vmov\\.f16\\ts[0-9]+, r[0-9]+ 2 (found 38 times)

but this is not a regression, the previous version of the test had the
same problem.

Grrr, that's because the softfp ABI necessitates moves between core and FP registers, so scanning for a particular number of vmovs between them is just not gonna be stable across soft-float ABIs. At this point I'd just remove the scan for vmovs completely as it doesn't
seem to check anything useful.

A patch to remove that scan for VMOV is pre-approved.

Thanks for reminding me of this Christophe, softfp tends to slip my mind :(
Kyrill

Christophe

Thanks,
Kyrill




Reply via email to