aboutsummaryrefslogtreecommitdiff
path: root/gcc/gcc.c
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2019-08-07 18:51:40 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2019-08-07 18:51:40 +0000
commitd45b20a5539b6f306a559470c3a7e9f84a058bfb (patch)
treecc2b8d1de01d36661b9b58925e7ea34016981ca7 /gcc/gcc.c
parent8ad84de26e1032d80225905c611a47b64a385e8a (diff)
downloadgcc-d45b20a5539b6f306a559470c3a7e9f84a058bfb.zip
gcc-d45b20a5539b6f306a559470c3a7e9f84a058bfb.tar.gz
gcc-d45b20a5539b6f306a559470c3a7e9f84a058bfb.tar.bz2
[AArch64] Merge SVE FP unary patterns
This patch merges the SVE FP rounding patterns with the other SVE FP unary patterns. At the moment, we only generate unary FP operations for full vectors, so we can use (sqrt:VNx4SF ...) etc. in the rtl pattern. With the ACLE, it's also possible to generate predicated operations on partial vectors without specifying a value for inactive lanes. (sqrt:VNx4SF ...) would then have different faulting behaviour from the instruction that the pattern generates. This patch therefore uses unspecs to represent the operations instead. Later patches make this change for other patterns. 2019-08-07 Richard Sandiford <richard.sandiford@arm.com> gcc/ * config/aarch64/iterators.md (UNSPEC_COND_FABS, UNSPEC_COND_FNEG) (UNSPEC_COND_FRINTA, UNSPEC_COND_FRINTI, UNSPEC_COND_FRINTM) (UNSPEC_COND_FRINTN, UNSPEC_COND_FRINTP, UNSPEC_COND_FRINTX) (UNSPEC_COND_FRINTZ, UNSPEC_COND_FSQRT): New unspecs. (optab, sve_fp_op): Handle them. (SVE_FP_UNARY): Delete. (optab): Remove sqrt entry. (sve_fp_op): Remove neg, abs and sqrt entries. (SVE_COND_FP_UNARY): New int iterator. * config/aarch64/aarch64-sve.md (<frint_pattern><mode>2) (*<frint_pattern><mode>2): Delete. (<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... (<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. (*<SVE_FP_UNARY:optab><SVE_F:mode>2): Replace with... (*<SVE_COND_FP_UNARY:optab><SVE_F:mode>2): ...this. From-SVN: r274187
Diffstat (limited to 'gcc/gcc.c')
0 files changed, 0 insertions, 0 deletions