https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105832
--- Comment #15 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So there is a pattern for: /* Simplify ((C <</>> x) & D) != 0 where C and D are power of two constants, either to false if D is smaller (unsigned comparison) than C, or to x == log2 (D) - log2 (C). Similarly for right shifts. */ But in this case C is 1 and (D is 1 but removed as 1>>N is either [0,1]). So we just need to add one for this.