aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.cc
diff options
context:
space:
mode:
authorAndrew Pinski <apinski@marvell.com>2023-08-07 10:47:09 -0700
committerAndrew Pinski <apinski@marvell.com>2023-08-09 12:21:04 -0700
commit7fb65f102851248bafa0815401d8bdcea6d7626c (patch)
tree6cbd86c8c1a93fac696f2785e3a051c23b2e2dd8 /gcc/expr.cc
parent5c27c911f6beb445ce358032599bf83bd5808397 (diff)
downloadgcc-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