This is the mail archive of the
gcc-patches@gcc.gnu.org
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.9070805@codesourcery.com> <4F704189.4010302@codesourcery.com> <4F86F932.60606@arm.com> <4F897239.1090901@codesourcery.com> <4F897794.7010402@codesourcery.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
>>> first:
>>>
>>> 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.
>>
>> OK?
>>
>> Andrew
>>
>> 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.)
>>
>> neon-neg64.patch
>>
>>
>> 2012-04-12 Andrew Stubbs <ams@codesourcery.com>
>>
>> gcc/
>> * 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.
>>
OK
R.