]> git.ipfire.org Git - thirdparty/gcc.git/commit
Add Plus to the op list of `(zero_one == 0) ? y : z <op> y` pattern
authorAndrew Pinski <apinski@marvell.com>
Wed, 7 Jun 2023 16:05:15 +0000 (09:05 -0700)
committerAndrew Pinski <apinski@marvell.com>
Fri, 9 Jun 2023 14:15:22 +0000 (07:15 -0700)
commit55fcaa9a8bd9c8ce97ca929fc902c88cf92786a0
treec03f69535746514ac2d7149bebf6de015bfb0a01
parent52c92fb3f4005051e86bb3e9c70a13fb34954cd1
Add Plus to the op list of `(zero_one == 0) ? y : z <op> y` pattern

This adds plus to the op list of `(zero_one == 0) ? y : z <op> y` patterns
which currently has bit_ior and bit_xor.
This shows up now in GCC after the boolization work that Uroš has been doing.

OK? Bootstrapped and tested on x86_64-linux-gnu with no regressions.

PR tree-optimization/97711
PR tree-optimization/110155

gcc/ChangeLog:

* match.pd ((zero_one == 0) ? y : z <op> y): Add plus to the op.
((zero_one != 0) ? z <op> y : y): Likewise.

gcc/testsuite/ChangeLog:

* gcc.dg/tree-ssa/branchless-cond-add-2.c: New test.
* gcc.dg/tree-ssa/branchless-cond-add.c: New test.
gcc/match.pd
gcc/testsuite/gcc.dg/tree-ssa/branchless-cond-add-2.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/tree-ssa/branchless-cond-add.c [new file with mode: 0644]