https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96688
--- Comment #5 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:8f8762a2e8659c1db802ba001869085c1915498f commit r11-6663-g8f8762a2e8659c1db802ba001869085c1915498f Author: Jakub Jelinek <ja...@redhat.com> Date: Thu Jan 14 12:50:33 2021 +0100 match.pd: Optimize ~(X >> Y) to ~X >> Y if ~X can be simplified [PR96688] This patch optimizes two GIMPLE operations into just one. As mentioned in the PR, there is some risk this might create more expensive constants, but sometimes it will make them on the other side less expensive, it really depends on the exact value. And if it is an important issue, we should do it in md or during expansion. 2021-01-14 Jakub Jelinek <ja...@redhat.com> PR tree-optimization/96688 * match.pd (~(X >> Y) -> ~X >> Y): New simplification if ~X can be simplified. * gcc.dg/tree-ssa/pr96688.c: New test. * gcc.dg/tree-ssa/reassoc-37.c: Adjust scan-tree-dump regex. * gcc.target/i386/pr66821.c: Likewise.