[AArch64] Merge SVE FMAXNM/FMINNM patterns
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 7 Aug 2019 18:56:48 +0000 (18:56 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 7 Aug 2019 18:56:48 +0000 (18:56 +0000)
commit214c42faa06a9eb1aa7f0296399f28df4fb068ec
tree9e3d1e4f937b8aeeccb12929b435e39795e3f84e
parentd45b20a5539b6f306a559470c3a7e9f84a058bfb
[AArch64] Merge SVE FMAXNM/FMINNM patterns

This patch makes us use the same define_insn for both the smax/smin
and fmax/fmin optabs.  It also continues the process started by
the earlier FP unary patch of moving predicated FP patterns from
rtx codes to unspecs.

There's no need to handle the FMAX and FMIN instructions until
the ACLE patch, since we only use FMAXNM and FMINNM at present.

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

gcc/
* config/aarch64/iterators.md (SVE_COND_FP_MAXMIN_PUBLIC): New
int iterator.
(maxmin_uns_op): Handle UNSPEC_COND_FMAXNM and UNSPEC_COND_FMINNM.
* config/aarch64/aarch64-sve.md
(<FMAXMIN:su><FMAXMIN:maxmin><SVE_F:mode>3): Rename to...
(<SVE_COND_FP_MAXMIN_PUBLIC:optab><SVE_F:mode>3): ...this and
use a single unspec for the rhs.
(*<su><maxmin><mode>3): Delete.
(<maxmin_uns><SVE_F:mode>3): Use a single unspec for the rhs.

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