[AArch64][SVE] Remove unnecessary PTRUEs from FP arithmetic
authorRichard Sandiford <richard.sandiford@arm.com>
Fri, 7 Dec 2018 15:01:47 +0000 (15:01 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Fri, 7 Dec 2018 15:01:47 +0000 (15:01 +0000)
commit740c1ed77c11b4be66c3c3c56660e11f01a383d8
treed94f381bbf9f39e2564351a3299cf464c0b47da0
parent5a58929be88a9f83881668f3d0fb7961c4ef5e58
[AArch64][SVE] Remove unnecessary PTRUEs from FP arithmetic

When using the unpredicated all-register forms of FADD, FSUB and FMUL,
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/iterators.md (SVE_UNPRED_FP_BINARY): New code
iterator.
(sve_fp_op): Handle minus and mult.
* config/aarch64/aarch64-sve.md (*add<mode>3, *sub<mode>3)
(*mul<mode>3): Split the patterns after reload if we don't
need the predicate operand.
(*post_ra_<sve_fp_op><mode>3): New pattern.

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

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