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 register 1. Jakub