https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111763
Roger Sayle <roger at nextmovesoftware dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |roger at nextmovesoftware dot
com
Ever confirmed|0 |1
Status|UNCONFIRMED |NEW
Last reconfirmed| |2026-10-12
--- Comment #1 from Roger Sayle <roger at nextmovesoftware dot com> ---
Following the patch for PR 108477, GCC will now convert to the "in | 2" to "in
+ 2" in the following intermediate example.
int f3(int in) {
in = (in & ~(unsigned long)(1|2));
in = in | 2;
return in;
}
so the remaining missing piece is (for match.pd) to convert (x & C1)|C2 into
(x & C3)|C2 where C3 = C1&~C2.