Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160).
commitf6ef0657e493e1f84dfb5b0b1966cf34e371ae27
authorJoseph Myers <joseph@codesourcery.com>
Fri, 27 May 2016 17:47:54 +0000 (27 17:47 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Fri, 27 May 2016 17:47:54 +0000 (27 17:47 +0000)
treebb1f337bbc8ceb8b9a43fe869792f8c90be8f7e3
parentdebf7618f68deed8b378beb199525d4467edb6d4
Fix powerpc64 ceil, rint etc. on sNaN input (bug 20160).

The powerpc64 versions of ceil, floor, round, trunc, rint, nearbyint
and their float versions return sNaN for sNaN input when they should
return qNaN.  This patch fixes them to add a NaN argument to itself to
quiet sNaNs before returning.

Tested for powerpc64.

[BZ #20160]
* sysdeps/powerpc/powerpc64/fpu/s_ceil.S (__ceil): Add NaN
argument to itself before returning the result.
* sysdeps/powerpc/powerpc64/fpu/s_ceilf.S (__ceilf): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_floor.S (__floor): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_floorf.S (__floorf): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S (__nearbyint):
Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S (__nearbyintf):
Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_rint.S (__rint): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_rintf.S (__rintf): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_round.S (__round): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_roundf.S (__roundf): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_trunc.S (__trunc): Likewise.
* sysdeps/powerpc/powerpc64/fpu/s_truncf.S (__truncf): Likewise.
13 files changed:
ChangeLog
sysdeps/powerpc/powerpc64/fpu/s_ceil.S
sysdeps/powerpc/powerpc64/fpu/s_ceilf.S
sysdeps/powerpc/powerpc64/fpu/s_floor.S
sysdeps/powerpc/powerpc64/fpu/s_floorf.S
sysdeps/powerpc/powerpc64/fpu/s_nearbyint.S
sysdeps/powerpc/powerpc64/fpu/s_nearbyintf.S
sysdeps/powerpc/powerpc64/fpu/s_rint.S
sysdeps/powerpc/powerpc64/fpu/s_rintf.S
sysdeps/powerpc/powerpc64/fpu/s_round.S
sysdeps/powerpc/powerpc64/fpu/s_roundf.S
sysdeps/powerpc/powerpc64/fpu/s_trunc.S
sysdeps/powerpc/powerpc64/fpu/s_truncf.S