OSDN Git Service

* config/i386/i386.c (ix86_builtin_reciprocal): Remove dependency
authormatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Nov 2009 14:11:26 +0000 (14:11 +0000)
committermatz <matz@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 5 Nov 2009 14:11:26 +0000 (14:11 +0000)
on TARGET_RECIP.
* doc/invoke.texi (-mrecip): Clarify that we don't need -mrecip
for 1/sqrtf.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@153940 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c
gcc/doc/invoke.texi

index 9643b5f..b5ceb7b 100644 (file)
@@ -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
index 1c064bf..2031dfb 100644 (file)
@@ -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;
index 0a8911b..20a9395 100644 (file)
@@ -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