Limit movmem copies to TImode on AArch64
On AArch64 we have integer modes larger than TImode, and while we can generate
moves for these they're not as efficient.
So instead make sure we limit the maximum we can copy to TImode. This means
copying a 16 byte struct will issue 1 TImode copy, which will be done using a
single STP as we expect but an CImode sized copy won't issue CImode operations.
I am also moving the residual code inside the if since smallest_mode_for_int may
trap if the mode doesn't exist. And the only time we know the mode to exist for
sure is when the condition of the if is true. This also saves repeated calls to
the iterator.
gcc/
2018-08-30 Tamar Christina <tamar.christina@arm.com>
* config/aarch64/aarch64.c (aarch64_expand_movmem): Set TImode max.
gcc/testsuite/
2018-08-30 Tamar Christina <tamar.christina@arm.com>
* gcc.target/aarch64/large_struct_copy_2.c: New.
From-SVN: r263974