Add simple sign-stripping cases to match.pd
authorRichard Sandiford <richard.sandiford@arm.com>
Wed, 21 Oct 2015 09:49:13 +0000 (09:49 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Wed, 21 Oct 2015 09:49:13 +0000 (09:49 +0000)
commit5d3498b4e03cbd1639cff5d1b19515393b0009b5
treee80a9f5011fa7ceae0d53ca58e953a84f6c350b4
parentdc3cf66b06e1357d69e5ad9293449369064f254e
Add simple sign-stripping cases to match.pd

This patch makes sure that, for every simplification that uses
fold_strip_sign_ops, there are associated match.pd rules for the
leaf sign ops, i.e. abs, negate and copysign.  A follow-on patch
will add a pass to handle more complex cases.

Tested on x86_64-linux-gnu, aarch64-linux-gnu and arm-linux-gnueabi.

gcc/
* match.pd: Add rules to simplify ccos, ccosh, hypot, copysign
and x*x in cases where the operands are sign ops.  Extend these
rules to handle copysign as a sign op (including for cos, cosh
and pow, which already treated negate and abs as sign ops).

From-SVN: r229123
gcc/ChangeLog
gcc/match.pd