http://gcc.gnu.org/bugzilla/show_bug.cgi?id=61095
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> --- CCP2 does this to <bb 2>: _2 = addr_1(D) & 18446607734267707384; _3 = _2 * 4; p_4 = (long unsigned int *) _3; _5 = p_4 + 8; xxx_6 = (long unsigned int) _5; _7 = xxx_6 > 4123168604159; _8 = (int) _7; return _8; but not CCP1 to <bb 2>: _2 = addr_1(D) & 18446607734267707384; _3 = _2 * 4; p_4 = (long unsigned int *) _3; _5 = p_4 + 8; xxx_6 = (long unsigned int) _5; _7 = xxx_6 > 4123168604159; _8 = (int) _7; return _8; that's weird.