On Fri, Sep 28, 2018 at 10:57 AM Wilco Dijkstra <[email protected]> wrote:
>
> Richard Henderson wrote:
>
> > If you're going to add moves r->w, why not also go ahead and add w->r.
> > There are also HImode fmov zero-extensions, fwiw.
>
> Well in principle it would be possible to support all 8/16/32-bit zero
> extensions
> for all combinations of int and fp registers. However I prefer to only add
> cases
> which are proven to be useful in real code, so it would need an example where
> it helps.
>
> We've seen too many instances where not keeping a well defined boundary
> between int and fp/simd leads to bad code, so not defining all possible legal
> combinations is intended. I'll check whether 32-bit w->r and w->w
> zero-extension
> could ever trigger.
Something like will cover w->w zero-extension.
#define vector __attribute__((vector_size(16) ))
vector unsigned long long f(vector unsigned long long b, vector unsigned int a)
{
b[0] = a[0];
return b;
}
---- CUT ----
Something like this will cover w->r zero-extension
unsigned long long g(vector unsigned int a)
{
return a[0];
}
Thanks,
Andrew Pinski
>
> Wilco
>