[PATCH] Add explicit VIS intrinsics for addition and subtraction.

Eric Botcazou ebotcazou@adacore.com
Tue Sep 27 09:35:00 GMT 2011


> 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



More information about the Gcc-patches mailing list