Hi, Marcus. I've run Geekbench, SPEC CPU2000 and synthetic benchmarks.
I can share these results iterating an array with values between 1 and 1000000 and taking their square root: Million Operations/s Juno A53 @850MHz A57 @1100MHz X^½ DP Canon 31 37 Newton 13 39 %Δ -57% 6% SP Canon 48 144 Newton 18 62 %Δ -63% -57% X^-½ DP Canon 17 16 Newton 14 42 %Δ -17% 155% SP Canon 28 70 Newton 20 62 %Δ -30% -11% As you can see, it's a mixed result for A57 and a definite regression for A53. In mnost benchmarks overall, this is not a good optimization for A57. That's why I left it as a target-specific tuning. Thank you, -- Evandro Menezes Austin, TX > -----Original Message----- > From: Marcus Shawcroft [mailto:marcus.shawcr...@gmail.com] > Sent: Wednesday, December 09, 2015 8:06 > To: Evandro Menezes > Cc: GCC Patches; Marcus Shawcroft; James Greenhalgh; Andrew Pinski; Benedikt > Huber; philipp.toms...@theobroma-systems.com > Subject: Re: [AArch64] Emit square root using the Newton series > > On 8 December 2015 at 21:35, Evandro Menezes <e.mene...@samsung.com> wrote: > > Emit square root using the Newton series > > > > 2015-12-03 Evandro Menezes <e.mene...@samsung.com> > > > > gcc/ > > * config/aarch64/aarch64-protos.h (aarch64_emit_swsqrt): > > Declare new > > function. > > * config/aarch64/aarch64-simd.md (sqrt<mode>2): New > > expansion and > > insn definitions. > > * config/aarch64/aarch64-tuning-flags.def > > (AARCH64_EXTRA_TUNE_FAST_SQRT): New tuning macro. > > * config/aarch64/aarch64.c (aarch64_emit_swsqrt): Define > > new function. > > * config/aarch64/aarch64.md (sqrt<mode>2): New expansion > > and insn > > definitions. > > * config/aarch64/aarch64.opt (mlow-precision-recip-sqrt): > > Expand option > > description. > > * doc/invoke.texi (mlow-precision-recip-sqrt): Likewise. > > > > This patch extends the patch that added support for implementing > > x^-1/2 using the Newton series by adding support for x^1/2 as well. > > Hi Evandro, What benchmarking have you done on this patch? > /M