https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94786
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Jakub Jelinek <ja...@gcc.gnu.org>: https://gcc.gnu.org/g:1595a1cb7bfac8d5a6026d5d6f3a495be0391506 commit r11-198-g1595a1cb7bfac8d5a6026d5d6f3a495be0391506 Author: Jakub Jelinek <ja...@redhat.com> Date: Fri May 8 10:52:47 2020 +0200 match.pd: A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A simplification [PR94786] We already have x - ((x - y) & -(z < w)) and x + ((y - x) & -(z < w)) simplifications, this one adds x ^ ((x ^ y) & -(z < w)) (not merged using for because of the :c that can be present on bit_xor and can't on minus). 2020-05-08 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/94786 * match.pd (A ^ ((A ^ B) & -(C cmp D)) -> (C cmp D) ? B : A): New simplification. * gcc.dg/tree-ssa/pr94786.c: New test.