invoke.texi (i386 and x86-64 Options): Add the note about a significant loss of accur...
authorBrad Lucier <lucier@math.purdue.edu>
Fri, 4 May 2007 10:19:31 +0000 (12:19 +0200)
committerUros Bizjak <uros@gcc.gnu.org>
Fri, 4 May 2007 10:19:31 +0000 (12:19 +0200)
        * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
        Add the note about a significant loss of accuracy of some
        mathematical routines when these options are used.

From-SVN: r124413

gcc/ChangeLog
gcc/doc/invoke.texi

index 4ac2d44091ef4c14c9d1f3d80e04e08770b8738f..5c028131169c52f8b58e157d874325059b2d97f4 100644 (file)
@@ -1,3 +1,9 @@
+2007-05-04  Bradley Lucier  <lucier@math.purdue.edu>
+
+       * doc/invoke.texi (i386 and x86-64 Options) [-mpc32, -mpc64, -mpc80]:
+       Add the note about a significant loss of accuracy of some
+       mathematical routines when these options are used.
+
 2007-05-04  Maxim Kuvyrkov  <mkuvyrkov@ispras.ru>
 
        * haifa-sched.c (rtx_vec_t): New typedef.
index 1a89c904f71a94ad501fb061111a74cdca905336..e608dbc017e9e46d4b13ca020c268f73647e7c84 100644 (file)
@@ -10129,12 +10129,21 @@ the system libraries and startup modules.
 @opindex mpc80
 
 Set 80387 floating-point precision to 32, 64 or 80 bits.  When @option{-mpc32}
-is specified, the significand of floating-point operations is rounded to 24
-bits (single precision), @option{-mpc64} rounds the significand of
-floating-point operations to 53 bits (double precision) and @option{-mpc80}
-rounds the significand of floating-point operations to 64 bits (extended
-double precision).  Note that a change of default precision control may
-affect the results returned by some of the mathematical functions.
+is specified, the significands of results of floating-point operations are
+rounded to 24 bits (single precision); @option{-mpc64} rounds the the
+significands of results of floating-point operations to 53 bits (double
+precision) and @option{-mpc80} rounds the significands of results of
+floating-point operations to 64 bits (extended double precision), which is
+the default.  When this option is used, floating-point operations in higher
+precisions are not available to the programmer without setting the FPU
+control word explicitly.
+
+Setting the rounding of floating-point operations to less than the default
+80 bits can speed some programs by 2% or more.  Note that some mathematical
+libraries assume that extended precision (80 bit) floating-point operations
+are enabled by default; routines in such libraries could suffer significant
+loss of accuracy, typically through so-called "catastrophic cancellation",
+when this option is used to set the precision to less than extended precision. 
 
 @item -mstackrealign
 @opindex mstackrealign