Christophe Lyon <christophe.l...@linaro.org> writes:
> On Mon, 30 Sep 2019 at 17:24, Richard Sandiford <richard.sandif...@arm.com>
> wrote:
>
>     Richard Sandiford <richard.sandif...@arm.com> writes:
>     > The aarch64_vector_pcs handling in 
> aarch64_hard_regno_call_part_clobbered
>     > checks whether the mode might be bigger than 16 bytes, since on SVE
>     > targets the (non-SVE) vector PCS only guarantees that the low 16 bytes
>     > are preserved.  But for multi-register modes, we should instead test
>     > whether each single-register part might be bigger than 16 bytes.
>     > (The size is always divided evenly between registers.)
>     >
>     > The testcase uses XImode as an example where this helps.
>     >
>     > Tested on aarch64-linux-gnu (with and without SVE).  OK to install?
>     >
>     > Richard
>     >
>     >
>     > 2019-09-10  Richard Sandiford  <richard.sandif...@arm.com>
>     >
>     > gcc/
>     >       * config/aarch64/aarch64.c
>     (aarch64_hard_regno_call_part_clobbered):
>     >       For multi-registers modes, test how big each register part is.
>     >
>     > gcc/testsuite/
>     >       * gcc.target/aarch64/torture/simd-abi-8.c: New test.
>
>     I've now applied this as r276305.
>
>
>
> Hi Richard,
>
> I've noticed that the new test fails on aarch64_be:

Bah, yes, sorry.  Here's what I installed after testing on
aarch64-linux-gnu and aarch64_be-elf.  As well as fixing the
BE failure, it tighten the test so that it doesn't allow saving
and restoring 128-bit vectors as Q registers.

Thanks,
Richard


2019-10-04  Richard Sandiford  <richard.sandif...@arm.com>

gcc/testsuite/
        * gcc.target/aarch64/torture/simd-abi-8.c: Use -mlittle-endian.
        Check that there are no Q register saves or restores.

Index: gcc/testsuite/gcc.target/aarch64/torture/simd-abi-8.c
===================================================================
--- gcc/testsuite/gcc.target/aarch64/torture/simd-abi-8.c       2019-09-30 
16:23:21.547518094 +0100
+++ gcc/testsuite/gcc.target/aarch64/torture/simd-abi-8.c       2019-10-04 
14:27:26.298598005 +0100
@@ -1,5 +1,5 @@
 /* { dg-do compile } */
-/* { dg-options "-std=gnu99" } */
+/* { dg-options "-std=gnu99 -mlittle-endian" } */
 /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */
 
 #include <arm_neon.h>
@@ -18,3 +18,5 @@ g (int64x2x4_t *ptr)
 
 /* { dg-final { scan-assembler-times {\tld1\t} 1 } } */
 /* { dg-final { scan-assembler-times {\tst1\t} 1 } } */
+/* { dg-final { scan-assembler-not {\tld[pr]\tq} } } */
+/* { dg-final { scan-assembler-not {\tst[pr]\tq} } } */

Reply via email to