http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48616

--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-04-15 
13:07:56 UTC ---
The shift corresponding to
    a = Vec(16);
    a >>= shifts;
is actually there, but a wrong one, V4SImode = V4SImode >> SImode
rather than V4SImode = V4SImode >> V4SImode which needs to be done.  As the
first int in shifts is 0, this means %xmm0 containing {16,16,16,16} initially
is shifted down by {0,0,0,0} rather than {0,1,2,3}.

Reply via email to