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: gcc.target/aarch64/torture/simd-abi-8.c -O1 scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O1 scan-assembler-times \\tst1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 scan-assembler-times \\tst1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fno-use-linker-plugin -flto-partition=none scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fno-use-linker-plugin -flto-partition=none scan-assembler-times \\tst1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O2 -flto -fuse-linker-plugin -fno-fat-lto-objects scan-assembler-times \\tst1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O3 -g scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -O3 -g scan-assembler-times \\tst1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -Os scan-assembler-times \\tld1\\t 1 gcc.target/aarch64/torture/simd-abi-8.c -Os scan-assembler-times \\tst1\\t 1 Christophe Thanks, > Richard >