[AArch64] Emit square root using the Newton series
commitea713c3d2c8b4b7d62d29f711caa3a6b0c0d10a7
authorevandro <evandro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Jun 2016 19:02:56 +0000 (13 19:02 +0000)
committerevandro <evandro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Jun 2016 19:02:56 +0000 (13 19:02 +0000)
treeff0040ae43db233ff1f4aed503351f1a05556755
parentc23895494204af3a0727d081e899347985311a34
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237396 138bc75d-0d04-0410-961f-82ee72b054a4
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