https://gcc.gnu.org/bugzilla/show_bug.cgi?id=110155
--- Comment #5 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The trunk branch has been updated by Andrew Pinski <pins...@gcc.gnu.org>: https://gcc.gnu.org/g:55fcaa9a8bd9c8ce97ca929fc902c88cf92786a0 commit r14-1656-g55fcaa9a8bd9c8ce97ca929fc902c88cf92786a0 Author: Andrew Pinski <apin...@marvell.com> Date: Wed Jun 7 09:05:15 2023 -0700 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.