http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56548
--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2013-03-06 18:18:52 UTC --- But you can't achieve that through generation of invalid RTL. Anyway, I wonder why nonzero_bits during combine doesn't figure out that the upper bits are already all zero and optimize away the masking.