This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH][ARM] NEON DImode neg
- From: Richard Earnshaw <rearnsha at arm dot com>
- To: Andrew Stubbs <ams at codesourcery dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>, "patches at linaro dot org" <patches at linaro dot org>
- Date: Mon, 16 Apr 2012 13:41:47 +0100
- Subject: Re: [PATCH][ARM] NEON DImode neg
- References: <4F4D12C5.email@example.com> <4F704189.firstname.lastname@example.org> <4F86F932.email@example.com> <4F897239.firstname.lastname@example.org> <4F897794.email@example.com>
On 14/04/12 14:11, Andrew Stubbs wrote:
> And now with the patch. :(
> On 14/04/12 13:48, Andrew Stubbs wrote:
>> On 12/04/12 16:48, Richard Earnshaw wrote:
>>> If negation in Neon needs a scratch register, it seems to me to be
>>> somewhat odd that we're disparaging the ARM version.
>>> Also, wouldn't it be sensible to support a variant that was
>>> early-clobber on operand 0, but loaded immediate zero into that value
>>> vmov Dd, #0
>>> vsub Dd, Dd, Dm
>>> That way you'll never need more than two registers, whereas today you
>>> want three.
>> This patch implements the changes you suggested.
>> I've done a full bootstrap and test and found no regressions.
>> P.S. This patch can't actually be committed until my "NEON DImode
>> immediate constants" patch is approved and committed. (Without that the
>> load #0 needs a constant pool, and loading constants this late has a bug
>> at -O0.)
>> 2012-04-12 Andrew Stubbs <firstname.lastname@example.org>
>> * config/arm/arm.md (negdi2): Use gen_negdi2_neon.
>> * config/arm/neon.md (negdi2_neon): New insn.
>> Also add splitters for core and NEON registers.