> Eric, I'm sure you have noticed this, but the Sparc target test
> "combined-1.c" fails for some time on 32-bit because of how float
> arguments are passed in the 32-bit SPARC ABI.
>
> Since they are passed in integer registers, the vectorizer does
> the initial logical operations using non-VIS instructions,
> then pops them into the FPU regs to use the VIS vector addition
> and subtraction.

Yes, I noticed it, but this is a regression and probably is unrelated to the 
vectorizer.  IIRC the problem comes from the RA, which forces a bogus reload. 
That wouldn't be the first time some RA change breaks vector support on SPARC 
32-bit and this usually means that the change is at least questionable.

> Would you mind if I added a hack, like we use in the other test
> cases and the one I added here, to force the VIS operations to
> be used on 32-bit?  We could either pass the vectors as pointer
> args, or use the trick where we return the vector values from
> extern functions.

Let me first investigate a bit.

-- 
Eric Botcazou

Reply via email to