[AArch64] Merge SVE ternary FP operations
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 7 Aug 2019 19:01:37 +0000 (19:01 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 7 Aug 2019 19:01:37 +0000 (19:01 +0000)
commit0d80d083a2e1d368fcb11eb7ea5490c274f0ea15
tree0467d078cd458dab16231b433ef699a7068de2bc
parent214c42faa06a9eb1aa7f0296399f28df4fb068ec
[AArch64] Merge SVE ternary FP operations

This patch combines the four individual fused multiply-add optabs
into one pattern and uses unspecs instead of rtx codes.  This is
part of a series of patches that change the SVE FP patterns so that
they can describe cases in which the predicate isn't all-true.

2019-08-07  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
* config/aarch64/aarch64-sve.md (fma<mode>4, *fma<mode>4)
(fnma<mode>4, *fnma<mode>4, fnms<mode>4, *fnms<mode>4)
(fms<mode>4, *fms<mode>4): Replace with...
(<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4)
(*<SVE_COND_FP_TERNARY:optab><SVE_F:mode>4): ...these new patterns.
Use unspecs instead of rtx codes.
(cond_<optab><mode>, *cond_<optab><mode>_2, *cond_<optab><mode>_4)
(*cond_<optab><mode>_any): Add the predicate to SVE_COND_FP_TERNARY.

From-SVN: r274189
gcc/ChangeLog
gcc/config/aarch64/aarch64-sve.md