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 <a...@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.