http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49715
--- Comment #3 from sgunderson at bigfoot dot com 2011-07-12 15:19:51 UTC --- Wow, answer in record time :-) I don't know anything about GCC internals, so I can't comment much on the patch; my only worry here is what would happen if you had a very narrow mask, e.g. (x & 0xf) and you try to coerce it into the minimum possible type (a char); wouldn't you end up doing some sort of expansion with movzbl again?