From 80b9cbc9555a09d0aca886dbe89ea023660af2ca Mon Sep 17 00:00:00 2001 From: Brad Lucier Date: Fri, 4 May 2007 12:19:31 +0200 Subject: [PATCH] invoke.texi (i386 and x86-64 Options): Add the note about a significant loss of accuracy of some mathematical routines... * 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 | 6 ++++++ gcc/doc/invoke.texi | 21 +++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4ac2d44091e..5c028131169 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2007-05-04 Bradley Lucier + + * 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 * haifa-sched.c (rtx_vec_t): New typedef. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 1a89c904f71..e608dbc017e 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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 -- 2.30.2