mirror of git://gcc.gnu.org/git/gcc.git
ibm-ldouble.c (__gcc_qadd): Fix add of normal number and qNaN to not raise an inexact exception.
libgcc/ChangeLog: 2013-12-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com> * config/rs6000/ibm-ldouble.c (__gcc_qadd): Fix add of normal number and qNaN to not raise an inexact exception. gcc/testsuite/ChangeLog: 2013-12-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com> * gcc.target/powerpc/pr57363.c: New test. From-SVN: r205645
This commit is contained in:
parent
ba4fa5819f
commit
b03fb8c996
|
|
@ -1,3 +1,7 @@
|
||||||
|
2013-12-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* gcc.target/powerpc/pr57363.c: New test.
|
||||||
|
|
||||||
2013-12-03 Wei Mi <wmi@google.com>
|
2013-12-03 Wei Mi <wmi@google.com>
|
||||||
|
|
||||||
PR rtl-optimization/59020
|
PR rtl-optimization/59020
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
/* { dg-do run { target { powerpc*-*-linux* } } } */
|
||||||
|
/* { dg-options "-mlong-double-128" } */
|
||||||
|
|
||||||
|
/* Check if adding a qNAN and a normal long double does not generate a
|
||||||
|
inexact exception. */
|
||||||
|
|
||||||
|
#define _GNU_SOURCE
|
||||||
|
#include <fenv.h>
|
||||||
|
|
||||||
|
int main(void)
|
||||||
|
{
|
||||||
|
double x = __builtin_nan ("");
|
||||||
|
long double y = 1.1L;
|
||||||
|
|
||||||
|
feenableexcept (FE_INEXACT);
|
||||||
|
feclearexcept (FE_ALL_EXCEPT);
|
||||||
|
x = x + y;
|
||||||
|
return fetestexcept(FE_INEXACT);
|
||||||
|
}
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
2013-12-03 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
|
||||||
|
|
||||||
|
* config/rs6000/ibm-ldouble.c (__gcc_qadd): Fix add
|
||||||
|
of normal number and qNaN to not raise an inexact exception.
|
||||||
|
|
||||||
2013-11-28 Uros Bizjak <ubizjak@gmail.com>
|
2013-11-28 Uros Bizjak <ubizjak@gmail.com>
|
||||||
|
|
||||||
* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
|
* config/i386/32/sfp-machine.h (__FP_FRAC_ADDI_4): New macro.
|
||||||
|
|
|
||||||
|
|
@ -104,6 +104,8 @@ __gcc_qadd (double a, double aa, double c, double cc)
|
||||||
|
|
||||||
if (nonfinite (z))
|
if (nonfinite (z))
|
||||||
{
|
{
|
||||||
|
if (fabs (z) != inf())
|
||||||
|
return z;
|
||||||
z = cc + aa + c + a;
|
z = cc + aa + c + a;
|
||||||
if (nonfinite (z))
|
if (nonfinite (z))
|
||||||
return z;
|
return z;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue