Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Kernel:tools
cross-ia64-gcc48
gcc48-ibm-power8-bnc871635.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gcc48-ibm-power8-bnc871635.diff of Package cross-ia64-gcc48
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.target/powerpc/pr57363.c: New test. Index: libgcc/config/rs6000/ibm-ldouble.c =================================================================== --- libgcc/config/rs6000/ibm-ldouble.c (revision 205644) +++ libgcc/config/rs6000/ibm-ldouble.c (revision 205645) @@ -104,6 +104,8 @@ __gcc_qadd (double a, double aa, double if (nonfinite (z)) { + if (fabs (z) != inf()) + return z; z = cc + aa + c + a; if (nonfinite (z)) return z; Index: gcc/testsuite/gcc.target/powerpc/pr57363.c =================================================================== --- gcc/testsuite/gcc.target/powerpc/pr57363.c (revision 0) +++ gcc/testsuite/gcc.target/powerpc/pr57363.c (revision 205645) @@ -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); +}
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor