[AArch64] Add more choices for the reciprocal square root approximation
commitc23895494204af3a0727d081e899347985311a34
authorevandro <evandro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Jun 2016 19:02:52 +0000 (13 19:02 +0000)
committerevandro <evandro@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 13 Jun 2016 19:02:52 +0000 (13 19:02 +0000)
tree83b24b59e7b7a16a7bcfa358cd38d75be76f2d6f
parentb73b133071572d724dbd705afd11a8706b1e616d
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@237395 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64-tuning-flags.def
gcc/config/aarch64/aarch64.c
gcc/doc/invoke.texi