[AArch64][SVE] Remove unnecessary PTRUEs from integer arithmetic
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 7 Dec 2018 15:03:15 +0000 (15:03 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 7 Dec 2018 15:03:15 +0000 (15:03 +0000)
commit26004f51f9cfb83d88d445903933fb8c39a841f1
treeb131de467fe3ab3f444ff4f12e71c9bceca06d55
parent740c1ed77c11b4be66c3c3c56660e11f01a383d8
[AArch64][SVE] Remove unnecessary PTRUEs from integer arithmetic

When using the unpredicated immediate forms of MUL, LSL, LSR and ASR,
the rtl patterns would still have the predicate operand we created for
the other forms.  This patch splits the patterns after reload in order
to get rid of the predicate, like we already do for WHILE.

2018-12-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (*mul<mode>3, *v<optab><mode>3):
Split the patterns after reload if we don't need the predicate
operand.
(*post_ra_mul<mode>3, *post_ra_v<optab><mode>3): New patterns.

gcc/testsuite/
* gcc.target/aarch64/sve/pred_elim_2.c: New test.

From-SVN: r266892
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/sve/pred_elim_2.c [new file with mode: 0644]