https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25111
Jeffrey A. Law <law at redhat dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2016-11-19 CC| |law at redhat dot com Ever confirmed|0 |1 --- Comment #3 from Jeffrey A. Law <law at redhat dot com> --- There's a variant for bclr as well. Essentially by using &~ rather than IOR or XOR. That internally uses a rotate of -2 by the count to generate a mask. We don't catch the case there A is an argument because it's coming out of memory and it just gets too complex for the combiner to handle. So in the end, it's 3 relatively simple patterns. I'm not seeing hits in GCC's runtime or newlib, but I trust Kazu enough to assume his suggestion could well have come from a real codebase. I'll be committing a fix shortly.