On Wed, Feb 14, 2018 at 12:52:45PM +0100, Richard Biener wrote:
> On Tue, 13 Feb 2018, Jeff Law wrote:
> > On 01/30/2018 02:59 AM, Richard Biener wrote:
> > >
> > > This patch tries to deal with the "easy" part of a function ABI,
> > > the return value location, in vectorization costing. The testcase
> > > shows that if we vectorize the returned value but the function
> > > doesn't return in memory or in a vector register but as in this
> > > case in an integer register pair (reg:TI ax) (bah, ABI details
> > > exposed late? why's this not a parallel?) we end up spilling
> > > badly.
> > PARALLEL is used when the ABI mandates a value be returned in multiple
> > places. Typically that happens when the value is returned in different
> > types of registers (integer, floating point, vector).
> > Presumably it's not a PARALLEL in this case because the value is only
> > returned in %eax.
> It's returned in %eax and %rdx (TImode after all). But maybe
> "standard register pairs" are not represented as PARALLEL ...
Yes, it is (reg:TI %rax) if low part is in register 0 and high part in