On Thu, Feb 06, 2014 at 10:04:00AM +0100, Richard Biener wrote: > > PS, just looking at the patch now again, in the light of PR59594 > > the reordering of datarefs before goto again looks also wrong, we IMHO have > > to perform a vector ordered remove in that case, ok to handle it as a > > follow-up? > > Yeah...
Here it is. Bootstrapped/regtested on x86_64-linux and i686-linux, ok for trunk? 2014-02-08 Jakub Jelinek <ja...@redhat.com> * tree-vect-data-refs.c (vect_analyze_data_refs): For clobbers not at the end of datarefs vector use ordered_remove to avoid reordering datarefs vector. --- gcc/tree-vect-data-refs.c.jj 2014-02-06 18:04:15.000000000 +0100 +++ gcc/tree-vect-data-refs.c 2014-02-07 21:55:01.278701818 +0100 @@ -3303,7 +3303,8 @@ again: datarefs.pop (); break; } - datarefs[i] = dr = datarefs.pop (); + datarefs.ordered_remove (i); + dr = datarefs[i]; goto again; } Jakub