This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] Add explicit VIS intrinsics for addition and subtraction.
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: David Miller <davem at davemloft dot net>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 27 Sep 2011 10:04:35 +0200
- Subject: Re: [PATCH] Add explicit VIS intrinsics for addition and subtraction.
- References: <20110927.000118.1421173401433924103.davem@davemloft.net>
> 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