From 79e22ff8a4524d3f893ed01f508727d59a31a20e Mon Sep 17 00:00:00 2001
From: Michael Matz <matz@suse.de>
Date: Thu, 5 Nov 2009 14:11:26 +0000
Subject: [PATCH] i386.c (ix86_builtin_reciprocal): Remove dependency on
 TARGET_RECIP.

	* config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
	on TARGET_RECIP.
	* doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
	for 1/sqrtf.

From-SVN: r153940
---
 gcc/ChangeLog          | 7 +++++++
 gcc/config/i386/i386.c | 2 +-
 gcc/doc/invoke.texi    | 4 ++++
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9643b5fff2ec..b5ceb7b6b91a 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2009-11-05  Michael Matz  <matz@suse.de>
+
+	* config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
+	on TARGET_RECIP.
+	* doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
+	for 1/sqrtf.
+
 2009-11-04  Jason Merrill  <jason@redhat.com>
 
 	PR c++/36912
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 1c064bf98d86..2031dfb6e987 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -26070,7 +26070,7 @@ static tree
 ix86_builtin_reciprocal (unsigned int fn, bool md_fn,
 			 bool sqrt ATTRIBUTE_UNUSED)
 {
-  if (! (TARGET_SSE_MATH && TARGET_RECIP && !optimize_insn_for_size_p ()
+  if (! (TARGET_SSE_MATH && !optimize_insn_for_size_p ()
 	 && flag_finite_math_only && !flag_trapping_math
 	 && flag_unsafe_math_optimizations))
     return NULL_TREE;
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 0a8911b6a560..20a9395f0b7e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -12096,6 +12096,10 @@ Note that while the throughput of the sequence is higher than the throughput
 of the non-reciprocal instruction, the precision of the sequence can be
 decreased by up to 2 ulp (i.e. the inverse of 1.0 equals 0.99999994).
 
+Note that GCC implements 1.0f/sqrtf(x) in terms of RSQRTSS (or RSQRTPS)
+already with @option{-ffast-math} (or the above option combination), and
+doesn't need @option{-mrecip}.
+
 @item -mveclibabi=@var{type}
 @opindex mveclibabi
 Specifies the ABI type to use for vectorizing intrinsics using an
-- 
GitLab