https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101955
--- Comment #6 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:9020da78df2854f14f8b1d38b58a6d3b77a4b731 commit r14-2977-g9020da78df2854f14f8b1d38b58a6d3b77a4b731 Author: Drew Ross <drr...@redhat.com> Date: Fri Aug 4 09:08:05 2023 +0200 match.pd: Canonicalize (signed x << c) >> c [PR101955] Canonicalizes (signed x << c) >> c into the lowest precision(type) - c bits of x IF those bits have a mode precision or a precision of 1. Also combines this rule with (unsigned x << c) >> c -> x & ((unsigned)-1 >> c) to prevent duplicate pattern. PR middle-end/101955 * match.pd ((signed x << c) >> c): New canonicalization. * gcc.dg/pr101955.c: New test.