On Thu, 1 Dec 2011, Jakub Jelinek wrote:
> On Thu, Dec 01, 2011 at 10:53:57AM +0100, Richard Guenther wrote:
> > On Tue, 22 Nov 2011, Jakub Jelinek wrote:
> > > VEC_INTERLEAVE_*_EXPR trees are unfortunately dependent on
> > > BYTES_BIG_ENDIAN,
> > > what is HIGH vs. LOW is different based on endianity.
> >
> > Huh, that looks bogus. Both tree codes operate on registers and no
> > other codes care about "endianess" of vector registers.
> > (What about VEC_WIDEN_LSHIFT_{HI,LO}_EXPR?)
> >
> > Can't we simply push the differece to expansion time? Or even later?
>
> As RTH said, the best fix is to remove VEC_INTERLEAVE_*_EXPR altogether
> and just use VEC_PERM_EXPR always, it is redundant with that. But that
> might be too invasive for 4.8.
Yes, sorry - I'm recovering from a 3 week e-mail lag ;) I agree
using VEC_PERM_EXPR would be best - but that would also affect
backend patterns. Can we have a middle-ground that leaves those
untouched? We're still in stage 3, so fixing the bug with using
VEC_PERM_EXPR sounds appealing to me ;)
Thanks,
Richard.