[AArch64][SVE] Remove unnecessary PTRUEs from FP arithmetic
commit9e089468d855cd8b451c6836d6d250ef979d16d1
authorrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Dec 2018 15:01:47 +0000 (7 15:01 +0000)
committerrsandifo <rsandifo@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 7 Dec 2018 15:01:47 +0000 (7 15:01 +0000)
treed94f381bbf9f39e2564351a3299cf464c0b47da0
parent999e1c0738290c503d59080c8c7c7f9f1094a72d
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@266891 138bc75d-0d04-0410-961f-82ee72b054a4
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]