[AArch64] Add more choices for the reciprocal square root approximation
authorEvandro Menezes <evandro@gcc.gnu.org>
Mon, 13 Jun 2016 19:02:52 +0000 (19:02 +0000)
committerEvandro Menezes <evandro@gcc.gnu.org>
Mon, 13 Jun 2016 19:02:52 +0000 (19:02 +0000)
commit9acc9cbeb8570573b8d73053453d65becc2d386a
tree83b24b59e7b7a16a7bcfa358cd38d75be76f2d6f
parentd4f076c9b8f4288d748c871b5849146a518dee7b
[AArch64] Add more choices for the reciprocal square root approximation

Allow a target to prefer such operation depending on the operation mode.

gcc/
* config/aarch64/aarch64-protos.h
(AARCH64_APPROX_MODE): New macro.
(AARCH64_APPROX_{NONE,ALL}): Likewise.
(cpu_approx_modes): New structure.
(tune_params): New member "approx_modes".
* config/aarch64/aarch64-tuning-flags.def
(AARCH64_EXTRA_TUNE_APPROX_RSQRT): Remove macro.
* config/aarch64/aarch64.c
({generic,exynosm1,xgene1}_approx_modes): New core
"cpu_approx_modes" structures.
(generic_tunings): New member "approx_modes".
(cortexa35_tunings): Likewise.
(cortexa53_tunings): Likewise.
(cortexa57_tunings): Likewise.
(cortexa72_tunings): Likewise.
(exynosm1_tunings): Likewise.
(thunderx_tunings): Likewise.
(xgene1_tunings): Likewise.
(use_rsqrt_p): New argument for the mode and use new member from
"tune_params".
(aarch64_builtin_reciprocal): Devise mode from builtin.
(aarch64_optab_supported_p): New argument for the mode.
* doc/invoke.texi (-mlow-precision-recip-sqrt): Reword description.

From-SVN: r237395
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-tuning-flags.def
gcc/config/aarch64/aarch64.c
gcc/doc/invoke.texi