https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111915
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Note the reasoning for the extra options is still get: _2 = i_26 * 2; _23 = _2 & 1; _9 = (long unsigned int) _23; In the IR. Otherwise _23 would be 0.