On Fri, Jan 18, 2013 at 12:11:33PM +0100, Richard Biener wrote: > On Thu, Jan 17, 2013 at 7:22 PM, Jakub Jelinek <ja...@redhat.com> wrote: > (I wonder if it's worth doing the work to eventually swap instead of simply > forcing it to a reg always for overlaps)
It is just a couple of lines, and we might get better code (I think the case where both overlaps is really even rarer). > I suppose a similar testcase using vector extracts / inserts would also > work now? (and maybe fail before this patch?) Vectors are different, for vectors we always create the resulting vector and then store the whole vector, don't set it partially. At least for typedef long V __attribute__((vector_size (16))); V v; void foo (void) { v = (V) { v[1], v[0] }; } Dunno if you have some other testcase in mind. Jakub