http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49799
--- Comment #7 from Richard Earnshaw <rearnsha at gcc dot gnu.org> 2011-07-25 09:45:51 UTC --- No, you miss the point. Internally we must not generate (ashift (reg) (const_int)) where the const is negative. Note that your testcasegenerates a reg shift.