https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92492
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- If we change x264_clip_uint8 slightly to: static inline uint8_t x264_clip_uint8( uint8_t x ) { uint8_t t = -x; t = t>>7; uint8_t t1 = x&(~63); return t1 ? t : x; } GCC does the "right" thing. This is all type demontion going on.