aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@ispras.ru>2018-08-27 17:08:50 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2018-08-27 17:08:50 +0300
commitde5b5228631d14e272ec8bf93827dea3da16a33d (patch)
tree58d0821bd3945ea94fdd02018160bb52023e6dfe /gcc
parent92a285c1a7bad310d7223a7aa5d70e6a5fc3e644 (diff)
downloadgcc-de5b5228631d14e272ec8bf93827dea3da16a33d.zip
gcc-de5b5228631d14e272ec8bf93827dea3da16a33d.tar.gz
gcc-de5b5228631d14e272ec8bf93827dea3da16a33d.tar.bz2
match.pd: add single-use check for (x & y) ^ y -> ~x & y (PR 85758)
PR tree-optimization/85758 * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. From-SVN: r263887
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/match.pd2
2 files changed, 6 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5ecd5f6..123d76c 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2018-08-27 Alexander Monakov <amonakov@ispras.ru>
+
+ PR tree-optimization/85758
+ * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression.
+
2018-08-27 David Malcolm <dmalcolm@redhat.com>
PR 87091
diff --git a/gcc/match.pd b/gcc/match.pd
index cb3c93e..d43e52d 100644
--- a/gcc/match.pd
+++ b/gcc/match.pd
@@ -1027,7 +1027,7 @@ DEFINE_INT_AND_FLOAT_ROUND_FN (RINT)
(for opo (bit_and bit_xor)
opi (bit_xor bit_and)
(simplify
- (opo:c (opi:c @0 @1) @1)
+ (opo:c (opi:cs @0 @1) @1)
(bit_and (bit_not @0) @1)))
/* Given a bit-wise operation CODE applied to ARG0 and ARG1, see if both