diff options
Diffstat (limited to 'gcc/doc/invoke.texi')
-rw-r--r-- | gcc/doc/invoke.texi | 60 |
1 files changed, 48 insertions, 12 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 2a4ea47..d8c0c22 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -783,7 +783,8 @@ See RS/6000 and PowerPC Options. -mfloat-gprs=yes -mfloat-gprs=no -mfloat-gprs=single -mfloat-gprs=double @gol -mprototype -mno-prototype @gol -msim -mmvme -mads -myellowknife -memb -msdata @gol --msdata=@var{opt} -mvxworks -G @var{num} -pthread} +-msdata=@var{opt} -mvxworks -G @var{num} -pthread @gol +-mrecip -mrecip=@var{opt} -mno-recip -mrecip-precision -mno-recip-precision} @emph{RX Options} @gccoptlist{-m64bit-doubles -m32bit-doubles -fpu -nofpu@gol @@ -14975,17 +14976,6 @@ values for @var{cpu_type} are used for @option{-mtune} as for architecture, registers, and mnemonics set by @option{-mcpu}, but the scheduling parameters set by @option{-mtune}. -@item -mswdiv -@itemx -mno-swdiv -@opindex mswdiv -@opindex mno-swdiv -Generate code to compute division as reciprocal estimate and iterative -refinement, creating opportunities for increased throughput. This -feature requires: optional PowerPC Graphics instruction set for single -precision and FRE instruction for double precision, assuming divides -cannot generate user-visible traps, and the domain values not include -Infinities, denormals or zero denominator. - @item -maltivec @itemx -mno-altivec @opindex maltivec @@ -15641,6 +15631,52 @@ sequence. Adds support for multithreading with the @dfn{pthreads} library. This option sets flags for both the preprocessor and linker. +@item -mrecip +@itemx -mno-recip +@opindex mrecip +This option will enable GCC to use the reciprocal estimate and +reciprocal square root estimate instructions with additional +Newton-Raphson steps to increase precision instead of doing a divide or +square root and divide for floating point arguments. You should use +the @option{-ffast-math} option when using @option{-mrecip} (or at +least @option{-funsafe-math-optimizations}, +@option{-finite-math-only}, @option{-freciprocal-math} and +@option{-fno-trapping-math}). Note that while the throughput of the +sequence is generally 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) for reciprocal square +roots. + +@item -mrecip=@var{opt} +@opindex mrecip=opt +This option allows to control which reciprocal estimate instructions +may be used. @var{opt} is a comma separated list of options, that may +be preceeded by a @code{!} to invert the option: +@code{all}: enable all estimate instructions, +@code{default}: enable the default instructions, equvalent to @option{-mrecip}, +@code{none}: disable all estimate instructions, equivalent to @option{-mno-recip}; +@code{div}: enable the reciprocal approximation instructions for both single and double precision; +@code{divf}: enable the single precision reciprocal approximation instructions; +@code{divd}: enable the double precision reciprocal approximation instructions; +@code{rsqrt}: enable the reciprocal square root approximation instructions for both single and double precision; +@code{rsqrtf}: enable the single precision reciprocal square root approximation instructions; +@code{rsqrtd}: enable the double precision reciprocal square root approximation instructions; + +So for example, @option{-mrecip=all,!rsqrtd} would enable the +all of the reciprocal estimate instructions, except for the +@code{FRSQRTE}, @code{XSRSQRTEDP}, and @code{XVRSQRTEDP} instructions +which handle the double precision reciprocal square root calculations. + +@item -mrecip-precision +@itemx -mno-recip-precision +@opindex mrecip-precision +Assume (do not assume) that the reciprocal estimate instructions +provide higher precision estimates than is mandated by the powerpc +ABI. Selecting @option{-mcpu=power6} or @option{-mcpu=power7} +automatically selects @option{-mrecip-precision}. The double +precision square root estimate instructions are not generated by +default on low precision machines, since they do not provide an +estimate that converges after three steps. @end table @node RX Options |