diff options
author | Andrew Pinski <apinski@marvell.com> | 2023-08-07 10:47:09 -0700 |
---|---|---|
committer | Andrew Pinski <apinski@marvell.com> | 2023-08-09 12:21:04 -0700 |
commit | 7fb65f102851248bafa0815401d8bdcea6d7626c (patch) | |
tree | 6cbd86c8c1a93fac696f2785e3a051c23b2e2dd8 /gcc/expr.cc | |
parent | 5c27c911f6beb445ce358032599bf83bd5808397 (diff) | |
download | gcc-7fb65f102851248bafa0815401d8bdcea6d7626c.zip gcc-7fb65f102851248bafa0815401d8bdcea6d7626c.tar.gz gcc-7fb65f102851248bafa0815401d8bdcea6d7626c.tar.bz2 |
MATCH: [PR110937/PR100798] (a ? ~b : b) should be optimized to b ^ -(a)
This adds a simple match pattern for this case.
I noticed it a couple of different places.
One while I was looking at code generation of a parser and
also while I was looking at locations where bitwise_inverted_equal_p
should be used more.
Committed as approved after bootstrapped and tested on x86_64-linux-gnu with no regressions.
PR tree-optimization/110937
PR tree-optimization/100798
gcc/ChangeLog:
* match.pd (`a ? ~b : b`): Handle this
case.
gcc/testsuite/ChangeLog:
* gcc.dg/tree-ssa/bool-14.c: New test.
* gcc.dg/tree-ssa/bool-15.c: New test.
* gcc.dg/tree-ssa/phi-opt-33.c: New test.
* gcc.dg/tree-ssa/20030709-2.c: Update testcase
so `a ? -1 : 0` is not used to hit the match
pattern.
Diffstat (limited to 'gcc/expr.cc')
0 files changed, 0 insertions, 0 deletions