https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80641
--- Comment #15 from Andrew Pinski <pinskia at gcc dot gnu.org> --- This is interesting: _48 = _149 + 18446744073709551612; // _149 - 4 _63 = _55 + _48; _18 = _63 - _55; _19 = _18 /[ex] 4; _20 = (long unsigned int) _19; if (_55 != _63) _18 should be the same as _48 and the if statement should be if (_48 != 0)