From d5e19fa1ac75f707e70a41a7574b825e5d4a73d6 Mon Sep 17 00:00:00 2001 From: amonakov Date: Mon, 27 Aug 2018 14:08:50 +0000 Subject: [PATCH] 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@263887 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/match.pd | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5ecd5f60e1d8..123d76c86804 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-08-27 Alexander Monakov + + PR tree-optimization/85758 + * match.pd ((X & Y) ^ Y): Add :s qualifier to inner expression. + 2018-08-27 David Malcolm PR 87091 diff --git a/gcc/match.pd b/gcc/match.pd index cb3c93e3e162..d43e52d05cdd 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 -- 2.47.2