[AArch64] Emit square root using the Newton series
authorEvandro Menezes <evandro@gcc.gnu.org>
Mon, 13 Jun 2016 19:02:56 +0000 (19:02 +0000)
committerEvandro Menezes <evandro@gcc.gnu.org>
Mon, 13 Jun 2016 19:02:56 +0000 (19:02 +0000)
commit98daafa0b3decfb3efa2f2427f7b6e13de660541
treeff0040ae43db233ff1f4aed503351f1a05556755
parent9acc9cbeb8570573b8d73053453d65becc2d386a
[AArch64] Emit square root using the Newton series

2016-06-13  Evandro Menezes  <e.menezes@samsung.com>
            Wilco Dijkstra  <wilco.dijkstra@arm.com>

gcc/
* config/aarch64/aarch64-protos.h
(aarch64_emit_approx_rsqrt): Replace with new function
"aarch64_emit_approx_sqrt".
(cpu_approx_modes): New member "sqrt".
* config/aarch64/aarch64.c
(generic_approx_modes): New member "sqrt".
(exynosm1_approx_modes): Likewise.
(xgene1_approx_modes): Likewise.
(aarch64_emit_approx_rsqrt): Replace with new function
"aarch64_emit_approx_sqrt".
(aarch64_override_options_after_change_1): Handle new option.
* config/aarch64/aarch64-simd.md
(rsqrt<mode>2): Use new function instead.
(sqrt<mode>2): New expansion and insn definitions.
* config/aarch64/aarch64.md: Likewise.
* config/aarch64/aarch64.opt
(mlow-precision-sqrt): Add new option description.
* doc/invoke.texi (mlow-precision-sqrt): Likewise.

From-SVN: r237396
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/aarch64.c
gcc/config/aarch64/aarch64.md
gcc/config/aarch64/aarch64.opt
gcc/doc/invoke.texi