------- Comment #6 from jakub at gcc dot gnu dot org 2010-08-25 09:29 ------- Created an attachment (id=21559) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=21559&action=view) gcc46-pr45400.patch
Untested fix. I think it is already wrong to go through SUBREG that is changing mode class, already before hitting Adam's code the routine happily optimizes a normal integer shift with a vector shift of the other direction into AND mask. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45400