[AArch64] Fix for gcc-7 regression PR 80530
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 27 Apr 2017 14:09:55 +0000 (14:09 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 27 Apr 2017 14:09:55 +0000 (14:09 +0000)
commit2e19adc8b4f2f8374bb4c01d178e6411e12abd78
tree13bc8b456051f0d15d9f67335955c31dfa565082
parenta96eb6f2d7efc24f1be6a3cca2b7437fc6059779
[AArch64] Fix for gcc-7 regression PR 80530

This patch fixes the regression caused by the changes to add square root
estimation when compiling for xgene-1 or exynos-m1 targets.

The issue is that the expand path for the reciprocal estimate square
root pattern assumes that pattern cannot fail once it has been decided
that this expansion path is available, but because the logic deep inside
aarch64_emit_approx_sqrt() differs from use_rsqrt_p() the two disagree
as to what is safe.

This patch refactors the logic to ensure that we cannot unknowingly make
different choices here.

PR target/80530
* config/aarch64/aarch64.c (aarch64_emit_approx_sqrt): Ensure
that the logic for permitting reciprocal estimates matches that
in use_rsqrt_p.

From-SVN: r247340
gcc/ChangeLog
gcc/config/aarch64/aarch64.c