aarch64: Don't classify vector pairs as short vectors [PR103094]
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 15 Dec 2021 12:19:00 +0000 (12:19 +0000)
committerRichard Sandiford <richard.sandiford@arm.com>
Wed, 15 Dec 2021 12:19:00 +0000 (12:19 +0000)
commit73c3dacef9a30d7d66918606a97c496c71289f1b
tree10eb66864a051e17c90aae0821ff6d8a55085bbd
parent7527ddecef4721b3f4b00e8ad22d390b457c310b
aarch64: Don't classify vector pairs as short vectors [PR103094]

In this PR we were wrongly classifying a pair of 8-byte vectors
as a 16-byte “short vector” (in the AAPCS64 sense).  As the
comment in the patch says, this stems from an old condition
in aarch64_short_vector_p that is too loose, but that would
be difficult to tighten now.

We can still do the right thing for the newly-added modes though,
since there are no backwards compatibility concerns there.

Co-authored-by: Tamar Christina <tamar.christina@arm.com>
gcc/
PR target/103094
* config/aarch64/aarch64.c (aarch64_short_vector_p): Return false
for structure modes, rather than ignoring the type in that case.

gcc/testsuite/
PR target/103094
* gcc.target/aarch64/pr103094.c: New test.
gcc/config/aarch64/aarch64.c
gcc/testsuite/gcc.target/aarch64/pr103094.c [new file with mode: 0644]