https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66423
Marc Glisse <glisse at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2015-06-05 Target Milestone|--- |6.0 Summary|a % (1 << b) no longer gets |[6 Regression] a % (1 << b) |folded to a & (1 << b) for |no longer gets folded to a |unsigned a and b |& (1 << b) for unsigned a Ever confirmed|0 |1 --- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- a % (unsigned int) (1 << b) The pattern in match.pd seems to be missing a 'convert' case.