mbox

[PING,0/5] x86 pseudo-normal numbers

Message ID b6e7d210-9e14-63e6-942d-116273316352@gotplt.org
Headers show

Message

Siddhesh Poyarekar Dec. 18, 2020, 4:03 a.m. UTC
Ping!  I have made the changes to 3/5 and am waiting for reviews for the 
rest of the patches before posting a v2, in case more changes are 
needed.  It would be really nice to get this in before the freeze deadline.

Siddhesh

On 12/15/20 7:43 PM, Siddhesh Poyarekar via Libc-alpha wrote:
> Hi,
> 
> Following is the patchset that harmonizes classification of
> pseudo-normal numbers with gcc.  Pseudo-NaNs, Pseudo-Infinities and
> unnormal numbers are considered as signaling NaN as per classification
> since that is how they behave when used as operands in x86.
> 
> Pseudo-denormal numbers are not catered for in this patch.  The x86 CPU
> supposedly treats these numbers as denormals, but both gcc and glibc
> currently treat them as normals.
> 
> In summary, the patchset does the following:
> 
> - Update fpclassify to cater for pseudo-normal numbers
> - Consolidate isnanl so that it can be used by isnanl as well as
>    issignalingl.
> - Update isnanl logic to return true for all pseudo-normal numbers
> - Add an x86-specific issignalingl that returns true for all
>    pseudo-normals.
> 
> Siddhesh Poyarekar (5):
>    x86 long double: Support pseudo numbers in fpclassifyl
>    x86 long double: Support pseudo numbers in isnanl
>    Partially revert 681900d29683722b1cb0a8e565a0585846ec5a61
>    x86 long double: Consider pseudo numbers as signaling
>    x86 long double: Add tests for pseudo normal numbers
> 
>   sysdeps/i386/fpu/s_fpclassifyl.c         |   4 +
>   sysdeps/i386/fpu/s_isnanl.c              |  10 +-
>   sysdeps/ieee754/ldbl-96/s_issignalingl.c |   2 -
>   sysdeps/x86/fpu/Makefile                 |   3 +-
>   sysdeps/x86/fpu/isnanl_common.h          |  32 ++++
>   sysdeps/x86/fpu/s_issignalingl.c         |  39 +++++
>   sysdeps/x86/fpu/test-unnormal.c          | 196 +++++++++++++++++++++++
>   sysdeps/x86/ldbl2mpn.c                   |   8 -
>   8 files changed, 275 insertions(+), 19 deletions(-)
>   create mode 100644 sysdeps/x86/fpu/isnanl_common.h
>   create mode 100644 sysdeps/x86/fpu/s_issignalingl.c
>   create mode 100644 sysdeps/x86/fpu/test-unnormal.c
>