mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-27 22:03:57 +08:00
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>
|
||||
|
||||
PR rtl-optimization/59020
|
||||
|
19
gcc/testsuite/gcc.target/powerpc/pr57363.c
Normal file
19
gcc/testsuite/gcc.target/powerpc/pr57363.c
Normal file
@ -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>
|
||||
|
||||
* 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 (fabs (z) != inf())
|
||||
return z;
|
||||
z = cc + aa + c + a;
|
||||
if (nonfinite (z))
|
||||
return z;
|
||||
|
Loading…
Reference in New Issue
Block a user