mailing list of musl libc
 help / color / Atom feed
* [musl] Hexagon DSP support
@ 2020-04-15 13:19 sidneym
  2020-04-15 16:30 ` Rich Felker
  2020-04-15 18:55 ` Fangrui Song
  0 siblings, 2 replies; 31+ messages in thread
From: sidneym @ 2020-04-15 13:19 UTC (permalink / raw)
  To: musl


[-- Attachment #1: Type: text/plain, Size: 1444 bytes --]

Recently work has been done with clang/llvm/lld to extend support for
Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
available LLVM tools are able to build and run Hexagon programs via QEMU.
I've attached a patch that add the Hexagon bits to musl.  The optimized
routines have been purposely omitted to keep the size and complexity to a
minimum.

The changes are being mirrored here:
https://github.com/quic/musl/tree/hexagon
The QEMU mirror is here: https://github.com/quic/qemu
A description of the assembly language is here:
https://developer.qualcomm.com/download/hexagon/hexagon-v5x-programmers-refe
rence-manual.pdf?referrer=node/6116

The objective is to have enough freely available tools and libraries that
any user could develop code for the DSP.  The C-library is an important part
of that stack and this patch is intended to start a discussion of what would
need to happen in order for Hexagon to be added to the musl sources.

I've tested this using libc-test (git://repo.or.cz/libc-test) and 56 errors
are reported.  The support for Hexagon in QEMU is on-going and while some of
the errors (math) may be attributed to QEMU most also happen on hardware.  A
good chunk fail due to floating point exception status or precision.

Beyond the above testing a large number of packages have been built using
buildroot with our internal llvm tools.  No issues outside of tweaks to
avoid glibc assumptions were seen.

[-- Attachment #2: winmail.dat --]
[-- Type: application/ms-tnef, Size: 50077 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 13:19 [musl] Hexagon DSP support sidneym
@ 2020-04-15 16:30 ` Rich Felker
  2020-04-15 17:50   ` sidneym
  2020-04-15 18:55 ` Fangrui Song
  1 sibling, 1 reply; 31+ messages in thread
From: Rich Felker @ 2020-04-15 16:30 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On Wed, Apr 15, 2020 at 08:19:29AM -0500, sidneym@codeaurora.org wrote:
> Recently work has been done with clang/llvm/lld to extend support for
> Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
> available LLVM tools are able to build and run Hexagon programs via QEMU.
> I've attached a patch that add the Hexagon bits to musl.  The optimized
> routines have been purposely omitted to keep the size and complexity to a
> minimum.
> 
> The changes are being mirrored here:
> https://github.com/quic/musl/tree/hexagon
> The QEMU mirror is here: https://github.com/quic/qemu
> A description of the assembly language is here:
> https://developer.qualcomm.com/download/hexagon/hexagon-v5x-programmers-refe
> rence-manual.pdf?referrer=node/6116
> 
> The objective is to have enough freely available tools and libraries that
> any user could develop code for the DSP.  The C-library is an important part
> of that stack and this patch is intended to start a discussion of what would
> need to happen in order for Hexagon to be added to the musl sources.

Thanks for reaching out upstream and sharing this. I did a quick
glance over the port (mostly just arch/hexagon dir, not source dirs in
any detail) and what I've read so far looks good.

One question I have: alltypes.h.in defines _REDIR_TIME64. Is this
because there's an existing unofficial ABI in deployments that you
don't want to break? If so that's probably okay, but if not it's not
necessary or wanted for new 32-bit archs to define this; if it's not
defined, the unadorned symbol names will just be 64-bit versions, just
like on 64-bit archs.

> I've tested this using libc-test (git://repo.or.cz/libc-test) and 56 errors
> are reported.  The support for Hexagon in QEMU is on-going and while some of
> the errors (math) may be attributed to QEMU most also happen on hardware.  A
> good chunk fail due to floating point exception status or precision.

Can you send the output report to the list or post it somewhere
publicly accessible? I can probably give you a quick rundown on
whether any of the failures are unexpected (on qemu or real hardware)
and it will suggest which parts of the source I (and others in the
community) should focus on reviewing.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-04-15 16:30 ` Rich Felker
@ 2020-04-15 17:50   ` sidneym
  2020-04-15 18:06     ` Szabolcs Nagy
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-04-15 17:50 UTC (permalink / raw)
  To: musl



> -----Original Message-----
> From: Rich Felker <dalias@libc.org>
> Sent: Wednesday, April 15, 2020 11:30 AM
> To: sidneym@codeaurora.org
> Cc: musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Wed, Apr 15, 2020 at 08:19:29AM -0500, sidneym@codeaurora.org wrote:
> > Recently work has been done with clang/llvm/lld to extend support for
> > Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
> > available LLVM tools are able to build and run Hexagon programs via
QEMU.
> > I've attached a patch that add the Hexagon bits to musl.  The
> > optimized routines have been purposely omitted to keep the size and
> > complexity to a minimum.
> >
> > The changes are being mirrored here:
> > https://github.com/quic/musl/tree/hexagon
> > The QEMU mirror is here: https://github.com/quic/qemu A description of
> > the assembly language is here:
> > https://developer.qualcomm.com/download/hexagon/hexagon-v5x-
> programmer
> > s-refe
> > rence-manual.pdf?referrer=node/6116
> >
> > The objective is to have enough freely available tools and libraries
> > that any user could develop code for the DSP.  The C-library is an
> > important part of that stack and this patch is intended to start a
> > discussion of what would need to happen in order for Hexagon to be
> added to the musl sources.
> 
> Thanks for reaching out upstream and sharing this. I did a quick glance
over
> the port (mostly just arch/hexagon dir, not source dirs in any detail) and
what
> I've read so far looks good.
> 
> One question I have: alltypes.h.in defines _REDIR_TIME64. Is this because
> there's an existing unofficial ABI in deployments that you don't want to
> break? If so that's probably okay, but if not it's not necessary or wanted
for
> new 32-bit archs to define this; if it's not defined, the unadorned symbol
> names will just be 64-bit versions, just like on 64-bit archs.
> 
That was a copy/paste error and was responsible for a few libc-testsuite
failures: 
   ld.lld: error: undefined symbol: __dlsym_time64
I will correct that and update the source.


> > I've tested this using libc-test (git://repo.or.cz/libc-test) and 56
> > errors are reported.  The support for Hexagon in QEMU is on-going and
> > while some of the errors (math) may be attributed to QEMU most also
> > happen on hardware.  A good chunk fail due to floating point exception
> status or precision.
> 
> Can you send the output report to the list or post it somewhere publicly
> accessible? I can probably give you a quick rundown on whether any of the
> failures are unexpected (on qemu or real hardware) and it will suggest
which
> parts of the source I (and others in the
> community) should focus on reviewing.

This is the list, the context associated with some of the failures can be
bulky so I hope the summary is ok.  Let me know which failures are most
critical and I will try to fix those first.  51 failures after removing the
TIME64 define

FAIL src/api/main.exe [status 1]
FAIL src/functional/dlopen.exe [status 1]
FAIL src/functional/ipc_msg-static.exe [status 1]
FAIL src/functional/ipc_msg.exe [status 1]
FAIL src/functional/ipc_sem-static.exe [status 1]
FAIL src/functional/ipc_sem.exe [status 1]
FAIL src/functional/ipc_shm-static.exe [status 1]
FAIL src/functional/ipc_shm.exe [status 1]
FAIL src/functional/pthread_mutex-static.exe [status 1]
FAIL src/functional/pthread_mutex.exe [status 1]
FAIL src/functional/pthread_mutex_pi-static.exe [timed out]
FAIL src/functional/pthread_mutex_pi.exe [signal Segmentation fault]
FAIL src/functional/pthread_robust-static.exe [timed out]
FAIL src/functional/pthread_robust.exe [timed out]
FAIL src/functional/sem_init-static.exe [status 1]
FAIL src/functional/sem_init.exe [status 1]
FAIL src/functional/strptime-static.exe [status 1]
FAIL src/functional/strptime.exe [status 1]
FAIL src/functional/utime-static.exe [status 1]
FAIL src/functional/utime.exe [status 1]
FAIL src/math/acoshl.exe [status 1]
FAIL src/math/asinhl.exe [status 1]
FAIL src/math/erfcl.exe [status 1]
FAIL src/math/exp2l.exe [status 1]
FAIL src/math/fmal.exe [status 1]
FAIL src/math/ilogb.exe [status 1]
FAIL src/math/ilogbf.exe [status 1]
FAIL src/math/ilogbl.exe [status 1]
FAIL src/math/lgammal.exe [status 1]
FAIL src/math/powf.exe [status 1]
FAIL src/math/powl.exe [status 1]
FAIL src/math/sqrt.exe [status 1]
FAIL src/math/sqrtf.exe [status 1]
FAIL src/math/sqrtl.exe [status 1]
FAIL src/math/tgamma.exe [status 1]
FAIL src/math/tgammaf.exe [status 1]
FAIL src/math/tgammal.exe [status 1]
FAIL src/math/y0.exe [status 1]
FAIL src/math/y0f.exe [status 1]
FAIL src/math/y1.exe [status 1]
FAIL src/math/y1f.exe [status 1]
FAIL src/math/yn.exe [status 1]
FAIL src/math/ynf.exe [status 1]
FAIL src/regression/malloc-brk-fail-static.exe [status 1]
FAIL src/regression/malloc-brk-fail.exe [timed out]
FAIL src/regression/pthread-robust-detach-static.exe [status 1]
FAIL src/regression/pthread-robust-detach.exe [status 1]
FAIL src/regression/pthread_cond-smasher-static.exe [status 1]
FAIL src/regression/pthread_cond-smasher.exe [status 1]
FAIL src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
FAIL src/regression/pthread_once-deadlock-static.exe [status 1]


> 
> Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 17:50   ` sidneym
@ 2020-04-15 18:06     ` Szabolcs Nagy
  2020-04-15 18:22       ` sidneym
  2020-04-15 18:26       ` Rich Felker
  0 siblings, 2 replies; 31+ messages in thread
From: Szabolcs Nagy @ 2020-04-15 18:06 UTC (permalink / raw)
  To: sidneym; +Cc: musl

* sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15 12:50:21 -0500]:
> > > Recently work has been done with clang/llvm/lld to extend support for
> > > Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
> > > available LLVM tools are able to build and run Hexagon programs via
> QEMU.
...
> This is the list, the context associated with some of the failures can be
> bulky so I hope the summary is ok.  Let me know which failures are most
> critical and I will try to fix those first.  51 failures after removing the
> TIME64 define

is this qemu system emulation?

i'd look at the pthread failures first.
sqrt/sqrtf should work too (you may want to
implement them if there is a single instruction)
other math failures are not target specific.
the ipc failures may be relevant, or it
may be a time issue (if timestamps fail).

> 
> FAIL src/api/main.exe [status 1]
> FAIL src/functional/dlopen.exe [status 1]
> FAIL src/functional/ipc_msg-static.exe [status 1]
> FAIL src/functional/ipc_msg.exe [status 1]
> FAIL src/functional/ipc_sem-static.exe [status 1]
> FAIL src/functional/ipc_sem.exe [status 1]
> FAIL src/functional/ipc_shm-static.exe [status 1]
> FAIL src/functional/ipc_shm.exe [status 1]
> FAIL src/functional/pthread_mutex-static.exe [status 1]
> FAIL src/functional/pthread_mutex.exe [status 1]
> FAIL src/functional/pthread_mutex_pi-static.exe [timed out]
> FAIL src/functional/pthread_mutex_pi.exe [signal Segmentation fault]
> FAIL src/functional/pthread_robust-static.exe [timed out]
> FAIL src/functional/pthread_robust.exe [timed out]
> FAIL src/functional/sem_init-static.exe [status 1]
> FAIL src/functional/sem_init.exe [status 1]
> FAIL src/functional/strptime-static.exe [status 1]
> FAIL src/functional/strptime.exe [status 1]
> FAIL src/functional/utime-static.exe [status 1]
> FAIL src/functional/utime.exe [status 1]
> FAIL src/math/acoshl.exe [status 1]
> FAIL src/math/asinhl.exe [status 1]
> FAIL src/math/erfcl.exe [status 1]
> FAIL src/math/exp2l.exe [status 1]
> FAIL src/math/fmal.exe [status 1]
> FAIL src/math/ilogb.exe [status 1]
> FAIL src/math/ilogbf.exe [status 1]
> FAIL src/math/ilogbl.exe [status 1]
> FAIL src/math/lgammal.exe [status 1]
> FAIL src/math/powf.exe [status 1]
> FAIL src/math/powl.exe [status 1]
> FAIL src/math/sqrt.exe [status 1]
> FAIL src/math/sqrtf.exe [status 1]
> FAIL src/math/sqrtl.exe [status 1]
> FAIL src/math/tgamma.exe [status 1]
> FAIL src/math/tgammaf.exe [status 1]
> FAIL src/math/tgammal.exe [status 1]
> FAIL src/math/y0.exe [status 1]
> FAIL src/math/y0f.exe [status 1]
> FAIL src/math/y1.exe [status 1]
> FAIL src/math/y1f.exe [status 1]
> FAIL src/math/yn.exe [status 1]
> FAIL src/math/ynf.exe [status 1]
> FAIL src/regression/malloc-brk-fail-static.exe [status 1]
> FAIL src/regression/malloc-brk-fail.exe [timed out]
> FAIL src/regression/pthread-robust-detach-static.exe [status 1]
> FAIL src/regression/pthread-robust-detach.exe [status 1]
> FAIL src/regression/pthread_cond-smasher-static.exe [status 1]
> FAIL src/regression/pthread_cond-smasher.exe [status 1]
> FAIL src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
> FAIL src/regression/pthread_once-deadlock-static.exe [status 1]
> 
> 
> > 
> > Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-04-15 18:06     ` Szabolcs Nagy
@ 2020-04-15 18:22       ` sidneym
  2020-04-16  9:36         ` Szabolcs Nagy
  2020-04-15 18:26       ` Rich Felker
  1 sibling, 1 reply; 31+ messages in thread
From: sidneym @ 2020-04-15 18:22 UTC (permalink / raw)
  To: musl



> -----Original Message-----
> From: Szabolcs Nagy <nsz@port70.net>
> Sent: Wednesday, April 15, 2020 1:06 PM
> To: sidneym@codeaurora.org
> Cc: musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15
> 12:50:21 -0500]:
> > > > Recently work has been done with clang/llvm/lld to extend support
> > > > for Qualcomm's Hexagon DSP to a Linux target.  At this point the
> > > > publicly available LLVM tools are able to build and run Hexagon
> > > > programs via
> > QEMU.
> ...
> > This is the list, the context associated with some of the failures can
> > be bulky so I hope the summary is ok.  Let me know which failures are
> > most critical and I will try to fix those first.  51 failures after
> > removing the
> > TIME64 define
> 
> is this qemu system emulation?
No it isn't however that is being worked on.

> 
> i'd look at the pthread failures first.
> sqrt/sqrtf should work too (you may want to implement them if there is a
> single instruction) other math failures are not target specific.

In fact that does go away if I used the hardware accelerated routine that is
part of compiler-rt.builtins (__hexagon_sqrt)   Creating an explicit
reference to compiler-rt-builtins vs just copying the assembly, which is
preferred?


> the ipc failures may be relevant, or it
> may be a time issue (if timestamps fail).
> 
> >
> > FAIL src/api/main.exe [status 1]
> > FAIL src/functional/dlopen.exe [status 1] FAIL
> > src/functional/ipc_msg-static.exe [status 1] FAIL
> > src/functional/ipc_msg.exe [status 1] FAIL
> > src/functional/ipc_sem-static.exe [status 1] FAIL
> > src/functional/ipc_sem.exe [status 1] FAIL
> > src/functional/ipc_shm-static.exe [status 1] FAIL
> > src/functional/ipc_shm.exe [status 1] FAIL
> > src/functional/pthread_mutex-static.exe [status 1] FAIL
> > src/functional/pthread_mutex.exe [status 1] FAIL
> > src/functional/pthread_mutex_pi-static.exe [timed out] FAIL
> > src/functional/pthread_mutex_pi.exe [signal Segmentation fault] FAIL
> > src/functional/pthread_robust-static.exe [timed out] FAIL
> > src/functional/pthread_robust.exe [timed out] FAIL
> > src/functional/sem_init-static.exe [status 1] FAIL
> > src/functional/sem_init.exe [status 1] FAIL
> > src/functional/strptime-static.exe [status 1] FAIL
> > src/functional/strptime.exe [status 1] FAIL
> > src/functional/utime-static.exe [status 1] FAIL
> > src/functional/utime.exe [status 1] FAIL src/math/acoshl.exe [status
> > 1] FAIL src/math/asinhl.exe [status 1] FAIL src/math/erfcl.exe [status
> > 1] FAIL src/math/exp2l.exe [status 1] FAIL src/math/fmal.exe [status
> > 1] FAIL src/math/ilogb.exe [status 1] FAIL src/math/ilogbf.exe [status
> > 1] FAIL src/math/ilogbl.exe [status 1] FAIL src/math/lgammal.exe
> > [status 1] FAIL src/math/powf.exe [status 1] FAIL src/math/powl.exe
> > [status 1] FAIL src/math/sqrt.exe [status 1] FAIL src/math/sqrtf.exe
> > [status 1] FAIL src/math/sqrtl.exe [status 1] FAIL src/math/tgamma.exe
> > [status 1] FAIL src/math/tgammaf.exe [status 1] FAIL
> > src/math/tgammal.exe [status 1] FAIL src/math/y0.exe [status 1] FAIL
> > src/math/y0f.exe [status 1] FAIL src/math/y1.exe [status 1] FAIL
> > src/math/y1f.exe [status 1] FAIL src/math/yn.exe [status 1] FAIL
> > src/math/ynf.exe [status 1] FAIL
> > src/regression/malloc-brk-fail-static.exe [status 1] FAIL
> > src/regression/malloc-brk-fail.exe [timed out] FAIL
> > src/regression/pthread-robust-detach-static.exe [status 1] FAIL
> > src/regression/pthread-robust-detach.exe [status 1] FAIL
> > src/regression/pthread_cond-smasher-static.exe [status 1] FAIL
> > src/regression/pthread_cond-smasher.exe [status 1] FAIL
> > src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
> > FAIL src/regression/pthread_once-deadlock-static.exe [status 1]
> >
> >
> > >
> > > Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 18:06     ` Szabolcs Nagy
  2020-04-15 18:22       ` sidneym
@ 2020-04-15 18:26       ` Rich Felker
  2020-04-15 19:12         ` sidneym
  1 sibling, 1 reply; 31+ messages in thread
From: Rich Felker @ 2020-04-15 18:26 UTC (permalink / raw)
  To: sidneym, musl

On Wed, Apr 15, 2020 at 08:06:20PM +0200, Szabolcs Nagy wrote:
> * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15 12:50:21 -0500]:
> > > > Recently work has been done with clang/llvm/lld to extend support for
> > > > Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
> > > > available LLVM tools are able to build and run Hexagon programs via
> > QEMU.
> ....
> > This is the list, the context associated with some of the failures can be
> > bulky so I hope the summary is ok.  Let me know which failures are most
> > critical and I will try to fix those first.  51 failures after removing the
> > TIME64 define
> 
> is this qemu system emulation?
> 
> i'd look at the pthread failures first.

If qemu-user these would possibly be expected failures. If qemu-system
or native they almost surely indicate bugs in the atomics.

> sqrt/sqrtf should work too (you may want to
> implement them if there is a single instruction)
> other math failures are not target specific.
> the ipc failures may be relevant, or it
> may be a time issue (if timestamps fail).

arch/hexagon/bits is missing sem.h etc. so it's using the arch/generic
definitions, which only work for archs that are 64-bit or where the
only existing kernel interface has 64-bit time_t (i.e. riscv32). For
anything else they must be defined with the proper hi/lo time members,
and bits/ipcstat.h must define IPC_STAT as 0x102 to activate the
translations.

> > FAIL src/api/main.exe [status 1]
> > FAIL src/functional/dlopen.exe [status 1]
> > FAIL src/functional/ipc_msg-static.exe [status 1]
> > FAIL src/functional/ipc_msg.exe [status 1]
> > FAIL src/functional/ipc_sem-static.exe [status 1]
> > FAIL src/functional/ipc_sem.exe [status 1]
> > FAIL src/functional/ipc_shm-static.exe [status 1]
> > FAIL src/functional/ipc_shm.exe [status 1]
> > FAIL src/functional/pthread_mutex-static.exe [status 1]
> > FAIL src/functional/pthread_mutex.exe [status 1]
> > FAIL src/functional/pthread_mutex_pi-static.exe [timed out]
> > FAIL src/functional/pthread_mutex_pi.exe [signal Segmentation fault]
> > FAIL src/functional/pthread_robust-static.exe [timed out]
> > FAIL src/functional/pthread_robust.exe [timed out]
> > FAIL src/functional/sem_init-static.exe [status 1]
> > FAIL src/functional/sem_init.exe [status 1]
> > FAIL src/functional/strptime-static.exe [status 1]
> > FAIL src/functional/strptime.exe [status 1]
> > FAIL src/functional/utime-static.exe [status 1]
> > FAIL src/functional/utime.exe [status 1]
> > FAIL src/math/acoshl.exe [status 1]
> > FAIL src/math/asinhl.exe [status 1]
> > FAIL src/math/erfcl.exe [status 1]
> > FAIL src/math/exp2l.exe [status 1]
> > FAIL src/math/fmal.exe [status 1]
> > FAIL src/math/ilogb.exe [status 1]
> > FAIL src/math/ilogbf.exe [status 1]
> > FAIL src/math/ilogbl.exe [status 1]
> > FAIL src/math/lgammal.exe [status 1]
> > FAIL src/math/powf.exe [status 1]
> > FAIL src/math/powl.exe [status 1]
> > FAIL src/math/sqrt.exe [status 1]
> > FAIL src/math/sqrtf.exe [status 1]
> > FAIL src/math/sqrtl.exe [status 1]
> > FAIL src/math/tgamma.exe [status 1]
> > FAIL src/math/tgammaf.exe [status 1]
> > FAIL src/math/tgammal.exe [status 1]
> > FAIL src/math/y0.exe [status 1]
> > FAIL src/math/y0f.exe [status 1]
> > FAIL src/math/y1.exe [status 1]
> > FAIL src/math/y1f.exe [status 1]
> > FAIL src/math/yn.exe [status 1]
> > FAIL src/math/ynf.exe [status 1]
> > FAIL src/regression/malloc-brk-fail-static.exe [status 1]
> > FAIL src/regression/malloc-brk-fail.exe [timed out]
> > FAIL src/regression/pthread-robust-detach-static.exe [status 1]
> > FAIL src/regression/pthread-robust-detach.exe [status 1]
> > FAIL src/regression/pthread_cond-smasher-static.exe [status 1]
> > FAIL src/regression/pthread_cond-smasher.exe [status 1]
> > FAIL src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
> > FAIL src/regression/pthread_once-deadlock-static.exe [status 1]

Could you send the whole src/REPORT file which contains not just the
FAIL lines but the specific test failures that caused them? And label
whether it's for qemu-user, qemu-system, or real metal.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 13:19 [musl] Hexagon DSP support sidneym
  2020-04-15 16:30 ` Rich Felker
@ 2020-04-15 18:55 ` Fangrui Song
  1 sibling, 0 replies; 31+ messages in thread
From: Fangrui Song @ 2020-04-15 18:55 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On 2020-04-15, sidneym@codeaurora.org wrote:
>Recently work has been done with clang/llvm/lld to extend support for
>Qualcomm's Hexagon DSP to a Linux target.  At this point the publicly
>available LLVM tools are able to build and run Hexagon programs via QEMU.
>I've attached a patch that add the Hexagon bits to musl.  The optimized
>routines have been purposely omitted to keep the size and complexity to a
>minimum.
>
>The changes are being mirrored here:
>https://github.com/quic/musl/tree/hexagon
>The QEMU mirror is here: https://github.com/quic/qemu
>A description of the assembly language is here:
>https://developer.qualcomm.com/download/hexagon/hexagon-v5x-programmers-refe
>rence-manual.pdf?referrer=node/6116
>
>The objective is to have enough freely available tools and libraries that
>any user could develop code for the DSP.  The C-library is an important part
>of that stack and this patch is intended to start a discussion of what would
>need to happen in order for Hexagon to be added to the musl sources.
>
>I've tested this using libc-test (git://repo.or.cz/libc-test) and 56 errors
>are reported.  The support for Hexagon in QEMU is on-going and while some of
>the errors (math) may be attributed to QEMU most also happen on hardware.  A
>good chunk fail due to floating point exception status or precision.
>
>Beyond the above testing a large number of packages have been built using
>buildroot with our internal llvm tools.  No issues outside of tweaks to
>avoid glibc assumptions were seen.

WoW

Any chance to move the psABI
(http://lists.llvm.org/pipermail/llvm-dev/attachments/20190916/21516a52/attachment-0001.pdf),
as mentioned by https://reviews.llvm.org/D77021#1950279 to a more discoverable/official place :) ?

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-04-15 18:26       ` Rich Felker
@ 2020-04-15 19:12         ` sidneym
  2020-04-15 19:29           ` 'Rich Felker'
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-04-15 19:12 UTC (permalink / raw)
  To: 'Rich Felker', musl


[-- Attachment #1: Type: text/plain, Size: 4548 bytes --]



> -----Original Message-----
> From: Rich Felker <dalias@libc.org>
> Sent: Wednesday, April 15, 2020 1:26 PM
> To: sidneym@codeaurora.org; musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Wed, Apr 15, 2020 at 08:06:20PM +0200, Szabolcs Nagy wrote:
> > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15
> 12:50:21 -0500]:
> > > > > Recently work has been done with clang/llvm/lld to extend
> > > > > support for Qualcomm's Hexagon DSP to a Linux target.  At this
> > > > > point the publicly available LLVM tools are able to build and
> > > > > run Hexagon programs via
> > > QEMU.
> > ....
> > > This is the list, the context associated with some of the failures
> > > can be bulky so I hope the summary is ok.  Let me know which
> > > failures are most critical and I will try to fix those first.  51
> > > failures after removing the
> > > TIME64 define
> >
> > is this qemu system emulation?
> >
> > i'd look at the pthread failures first.
> 
> If qemu-user these would possibly be expected failures. If qemu-system or
> native they almost surely indicate bugs in the atomics.
> 
> > sqrt/sqrtf should work too (you may want to implement them if there is
> > a single instruction) other math failures are not target specific.
> > the ipc failures may be relevant, or it may be a time issue (if
> > timestamps fail).
> 
> arch/hexagon/bits is missing sem.h etc. so it's using the arch/generic
> definitions, which only work for archs that are 64-bit or where the only
> existing kernel interface has 64-bit time_t (i.e. riscv32). For anything
else
> they must be defined with the proper hi/lo time members, and
bits/ipcstat.h
> must define IPC_STAT as 0x102 to activate the translations.

Thanks I will take a look at these headers and the test issues.

> 
> > > FAIL src/api/main.exe [status 1]
> > > FAIL src/functional/dlopen.exe [status 1] FAIL
> > > src/functional/ipc_msg-static.exe [status 1] FAIL
> > > src/functional/ipc_msg.exe [status 1] FAIL
> > > src/functional/ipc_sem-static.exe [status 1] FAIL
> > > src/functional/ipc_sem.exe [status 1] FAIL
> > > src/functional/ipc_shm-static.exe [status 1] FAIL
> > > src/functional/ipc_shm.exe [status 1] FAIL
> > > src/functional/pthread_mutex-static.exe [status 1] FAIL
> > > src/functional/pthread_mutex.exe [status 1] FAIL
> > > src/functional/pthread_mutex_pi-static.exe [timed out] FAIL
> > > src/functional/pthread_mutex_pi.exe [signal Segmentation fault] FAIL
> > > src/functional/pthread_robust-static.exe [timed out] FAIL
> > > src/functional/pthread_robust.exe [timed out] FAIL
> > > src/functional/sem_init-static.exe [status 1] FAIL
> > > src/functional/sem_init.exe [status 1] FAIL
> > > src/functional/strptime-static.exe [status 1] FAIL
> > > src/functional/strptime.exe [status 1] FAIL
> > > src/functional/utime-static.exe [status 1] FAIL
> > > src/functional/utime.exe [status 1] FAIL src/math/acoshl.exe [status
> > > 1] FAIL src/math/asinhl.exe [status 1] FAIL src/math/erfcl.exe
> > > [status 1] FAIL src/math/exp2l.exe [status 1] FAIL src/math/fmal.exe
> > > [status 1] FAIL src/math/ilogb.exe [status 1] FAIL
> > > src/math/ilogbf.exe [status 1] FAIL src/math/ilogbl.exe [status 1]
> > > FAIL src/math/lgammal.exe [status 1] FAIL src/math/powf.exe [status
> > > 1] FAIL src/math/powl.exe [status 1] FAIL src/math/sqrt.exe [status
> > > 1] FAIL src/math/sqrtf.exe [status 1] FAIL src/math/sqrtl.exe
> > > [status 1] FAIL src/math/tgamma.exe [status 1] FAIL
> > > src/math/tgammaf.exe [status 1] FAIL src/math/tgammal.exe [status 1]
> > > FAIL src/math/y0.exe [status 1] FAIL src/math/y0f.exe [status 1]
> > > FAIL src/math/y1.exe [status 1] FAIL src/math/y1f.exe [status 1]
> > > FAIL src/math/yn.exe [status 1] FAIL src/math/ynf.exe [status 1]
> > > FAIL src/regression/malloc-brk-fail-static.exe [status 1] FAIL
> > > src/regression/malloc-brk-fail.exe [timed out] FAIL
> > > src/regression/pthread-robust-detach-static.exe [status 1] FAIL
> > > src/regression/pthread-robust-detach.exe [status 1] FAIL
> > > src/regression/pthread_cond-smasher-static.exe [status 1] FAIL
> > > src/regression/pthread_cond-smasher.exe [status 1] FAIL
> > > src/regression/pthread_cond_wait-cancel_ignored-static.exe [status
> > > 1] FAIL src/regression/pthread_once-deadlock-static.exe [status 1]
> 
> Could you send the whole src/REPORT file which contains not just the FAIL
> lines but the specific test failures that caused them? And label whether
it's
> for qemu-user, qemu-system, or real metal.

OK I attached the full report.


> 
> Rich

[-- Attachment #2: REPORT-qemu-user --]
[-- Type: application/octet-stream, Size: 256176 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 19:12         ` sidneym
@ 2020-04-15 19:29           ` 'Rich Felker'
  2020-04-30 22:44             ` sidneym
  0 siblings, 1 reply; 31+ messages in thread
From: 'Rich Felker' @ 2020-04-15 19:29 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On Wed, Apr 15, 2020 at 02:12:12PM -0500, sidneym@codeaurora.org wrote:
> src/api/ftw.c:44:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]

Compiling libc-test with -Werror is invalid. It necessarily must
produce some warnings, and needs to be able to distinguish actual
errors from them.

> 8 errors generated.
> src/functional/dlopen.c:39: dlsym main failed: Symbol not found: main
> FAIL src/functional/dlopen.exe [status 1]
> clang-11: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]

This is a clang deficiency that's preventing the test from working.

> src/functional/ipc_msg.c:62: qid_ds.msg_lspid == 0 failed: got 100, want 0
> src/functional/ipc_msg.c:64: (long long)qid_ds.msg_stime == 0 failed: got 6815993655711498240, want 0
> src/functional/ipc_msg.c:67: qid_ds.msg_ctime >= t failed: got 70368744177664, want >= 154502684032321054
> src/functional/ipc_msg.c:71: qid_ds.msg_qbytes > 0 failed: got 0, want > 0
> src/functional/ipc_msg.c:76: qid_ds.msg_qnum == 1 failed: got 0, want 1
> src/functional/ipc_msg.c:77: qid_ds.msg_lspid == getpid() failed: got 100, want 185819
> src/functional/ipc_msg.c:81: msg_stime is 6815993655711498240 want <= 154502684032321059
> src/functional/ipc_msg.c:128: child exit status: 256
> FAIL src/functional/ipc_msg-static.exe [status 1]

This is the sysvipc bits headers issue I mentioned. Same with the
sem/shm ones.

> src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock did not return EDEADLK, got deadlock
> src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock did not succed, got deadlock
> FAIL src/functional/pthread_mutex-static.exe [status 1]
> src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock did not return EDEADLK, got 
> src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock did not succed, got deadlock
> FAIL src/functional/pthread_mutex.exe [status 1]

This suggests broken atomics. It doesn't look like anything qemu-user
could cause (unless it's just failing to emulate the atomics at all).

> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:148: PTHREAD_MUTEX_ERRORCHECK relock did not return EDEADLK, got deadlock
> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> FAIL src/functional/pthread_mutex_pi-static.exe [timed out]
> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:148: PTHREAD_MUTEX_ERRORCHECK relock did not return EDEADLK, got deadlock
> src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:151: PTHREAD_MUTEX_RECURSIVE relock did not succed, got deadlock
> src/functional/pthread_mutex_pi.c:87: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
> src/functional/pthread_mutex_pi.c:24: pthread_mutex_unlock(a[0]) failed: Operation not permitted
> FAIL src/functional/pthread_mutex_pi.exe [signal Segmentation fault]
> src/functional/pthread_robust.c:39: pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed: (pshared==0, pi==0) Function not implemented (setting robust attribute)
> FAIL src/functional/pthread_robust-static.exe [timed out]
> src/functional/pthread_robust.c:39: pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed: (pshared==0, pi==0) Function not implemented (setting robust attribute)
> FAIL src/functional/pthread_robust.exe [timed out]

These are all expected on qemu-user: kernel prio-inherit and robust
features are not emulated by qemu.

> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:49: sem value should be 0, got 3
> FAIL src/functional/sem_init-static.exe [status 1]
> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed: Operation timed out
> src/functional/sem_init.c:49: sem value should be 0, got 3
> FAIL src/functional/sem_init.exe [status 1]

This is probably broken atomics again.

> src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
> src/functional/strptime.c:23: "%s": failed to parse "683078400"
> src/functional/strptime.c:47: "%z": failed to parse "+0200"
> src/functional/strptime.c:47: "%z": failed to parse "-0530"
> src/functional/strptime.c:47: "%z": failed to parse "-06"
> FAIL src/functional/strptime-static.exe [status 1]
> src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
> src/functional/strptime.c:23: "%s": failed to parse "683078400"
> src/functional/strptime.c:47: "%z": failed to parse "+0200"
> src/functional/strptime.c:47: "%z": failed to parse "-0530"
> src/functional/strptime.c:47: "%z": failed to parse "-06"
> FAIL src/functional/strptime.exe [status 1]

These are expected, functionality musl does not yet support
(future-standard, I think).

> src/functional/utime.c:38: st.st_atim.tv_sec == 0 failed: 1
> src/functional/utime.c:40: st.st_mtim.tv_sec == 0 failed: 1073741822
> src/functional/utime.c:47: st.st_atim.tv_sec >= t failed: 0
> src/functional/utime.c:48: st.st_mtim.tv_sec == 0 failed: 1073741823
> src/functional/utime.c:55: st.st_mtim.tv_sec >= t failed: 1073741822
> src/functional/utime.c:59: st.st_atim.tv_sec >= t failed: 0
> src/functional/utime.c:60: st.st_mtim.tv_sec >= t failed: 1073741823
> src/functional/utime.c:65: st.st_atim.tv_sec == 1LL<<32 failed: 0
> src/functional/utime.c:66: st.st_mtim.tv_sec == 1LL<<32 failed: 0
> FAIL src/functional/utime-static.exe [status 1]
> src/functional/utime.c:38: st.st_atim.tv_sec == 0 failed: 1
> src/functional/utime.c:40: st.st_mtim.tv_sec == 0 failed: 1073741822
> src/functional/utime.c:47: st.st_atim.tv_sec >= t failed: 0
> src/functional/utime.c:48: st.st_mtim.tv_sec == 0 failed: 1073741823
> src/functional/utime.c:55: st.st_mtim.tv_sec >= t failed: 1073741822
> src/functional/utime.c:59: st.st_atim.tv_sec >= t failed: 0
> src/functional/utime.c:60: st.st_mtim.tv_sec >= t failed: 1073741823
> src/functional/utime.c:65: st.st_atim.tv_sec == 1LL<<32 failed: 0
> src/functional/utime.c:66: st.st_mtim.tv_sec == 1LL<<32 failed: 0
> FAIL src/functional/utime.exe [status 1]

Looks like something is wrong here, possibly wrong struct kstat, or it
could be a qemu bug.

> src/math/ucb/sqrt.h:47: bad fp exception: RN sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
> [...]
> src/math/special/sqrt.h:74: bad fp exception: RN sqrtl(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
> FAIL src/math/sqrtl.exe [status 1]

These are likely all general (not arch-specific) clang floating point
bugs. We should see if they also happen compiling other archs without
asm versions of sqrt.

Alternatively it might be a qemu fpu emulation bug. I've seen this
kind of thing (inconsistent across arch) on other archs under
qemu-user.

> src/regression/malloc-brk-fail.c:41: malloc(10000) failed (eventhough 64k is available to mmap): Out of memory
> FAIL src/regression/malloc-brk-fail-static.exe [status 1]
> FAIL src/regression/malloc-brk-fail.exe [timed out]

This test does not seem to work on modern kernels much less qemu-user.

> src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38 "Function not implemented" want 0 "No error information"
> src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous owner died"
> src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38 "Function not implemented" want 0 "No error information"
> src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous owner died"
> FAIL src/regression/pthread-robust-detach-static.exe [status 1]
> src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38 "Function not implemented" want 0 "No error information"
> src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous owner died"
> src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38 "Function not implemented" want 0 "No error information"
> src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous owner died"
> FAIL src/regression/pthread-robust-detach.exe [status 1]

Expected on qemu-user.

> src/regression/pthread_cond-smasher.c:140: main thread in phase 0 (0 threads inside), finished waiting: Operation timed out
> FAIL src/regression/pthread_cond-smasher-static.exe [status 1]
> src/regression/pthread_cond-smasher.c:104: thread 5 in phase 0 (0) finished waiting: Operation timed out
> FAIL src/regression/pthread_cond-smasher.exe [status 1]

These could be atomic bugs or just emulation being slow.

> src/regression/pthread_cond_wait-cancel_ignored.c:52: pthread_cond_wait did not act on cancellation
> FAIL src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
> src/regression/pthread_once-deadlock.c:41: sem_timedwait(s,&ts) failed: Operation timed out
> src/regression/pthread_once-deadlock.c:44: pthread_once deadlocked
> FAIL src/regression/pthread_once-deadlock-static.exe [status 1]

These are definitely atomic bugs (either in the arch bits or in qemu).

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-15 18:22       ` sidneym
@ 2020-04-16  9:36         ` Szabolcs Nagy
  2020-04-16 15:34           ` Rich Felker
  0 siblings, 1 reply; 31+ messages in thread
From: Szabolcs Nagy @ 2020-04-16  9:36 UTC (permalink / raw)
  To: sidneym; +Cc: musl

* sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15 13:22:29 -0500]:
> > sqrt/sqrtf should work too (you may want to implement them if there is a
> > single instruction) other math failures are not target specific.
> 
> In fact that does go away if I used the hardware accelerated routine that is
> part of compiler-rt.builtins (__hexagon_sqrt)   Creating an explicit
> reference to compiler-rt-builtins vs just copying the assembly, which is
> preferred?

the preferred is like on other targets an inline asm block.
i think using __builtin_sqrt may be fine too if you know that
all hexagon compilers support that and doesnt generate an
actual sqrt call (e.g. on gcc that needs -fno-math-errno).

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-16  9:36         ` Szabolcs Nagy
@ 2020-04-16 15:34           ` Rich Felker
  2020-04-16 16:26             ` sidneym
  0 siblings, 1 reply; 31+ messages in thread
From: Rich Felker @ 2020-04-16 15:34 UTC (permalink / raw)
  To: sidneym, musl

On Thu, Apr 16, 2020 at 11:36:38AM +0200, Szabolcs Nagy wrote:
> * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15 13:22:29 -0500]:
> > > sqrt/sqrtf should work too (you may want to implement them if there is a
> > > single instruction) other math failures are not target specific.
> > 
> > In fact that does go away if I used the hardware accelerated routine that is
> > part of compiler-rt.builtins (__hexagon_sqrt)   Creating an explicit
> > reference to compiler-rt-builtins vs just copying the assembly, which is
> > preferred?
> 
> the preferred is like on other targets an inline asm block.
> i think using __builtin_sqrt may be fine too if you know that
> all hexagon compilers support that and doesnt generate an
> actual sqrt call (e.g. on gcc that needs -fno-math-errno).

__builtin_sqrt is explicitly allowed to compile to an external call to
sqrt (at compiler discretion), and thus can't be used to implement the
sqrt function. If you're implementing a native sqrt it should be
inline asm. But the C sqrt should work too. If it's not working that
indicates a bug in the compiler, in the code in musl, or in qemu, and
whichever it is we should track that down and get it fixed.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-04-16 15:34           ` Rich Felker
@ 2020-04-16 16:26             ` sidneym
  2020-04-16 16:34               ` 'Rich Felker'
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-04-16 16:26 UTC (permalink / raw)
  To: 'Rich Felker', musl



> -----Original Message-----
> From: Rich Felker <dalias@libc.org>
> Sent: Thursday, April 16, 2020 10:34 AM
> To: sidneym@codeaurora.org; musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Thu, Apr 16, 2020 at 11:36:38AM +0200, Szabolcs Nagy wrote:
> > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15
> 13:22:29 -0500]:
> > > > sqrt/sqrtf should work too (you may want to implement them if
> > > > there is a single instruction) other math failures are not target
specific.
> > >
> > > In fact that does go away if I used the hardware accelerated routine
that
> is
> > > part of compiler-rt.builtins (__hexagon_sqrt)   Creating an explicit
> > > reference to compiler-rt-builtins vs just copying the assembly,
> > > which is preferred?
> >
> > the preferred is like on other targets an inline asm block.
> > i think using __builtin_sqrt may be fine too if you know that all
> > hexagon compilers support that and doesnt generate an actual sqrt call
> > (e.g. on gcc that needs -fno-math-errno).
> 
> __builtin_sqrt is explicitly allowed to compile to an external call to
sqrt (at
> compiler discretion), and thus can't be used to implement the sqrt
function.
> If you're implementing a native sqrt it should be inline asm. But the C
sqrt
> should work too. If it's not working that indicates a bug in the compiler,
in the
> code in musl, or in qemu, and whichever it is we should track that down
and
> get it fixed.

I will add the assembly version for sqrt. There was an issue in qemu when
using the assembly version but that is fixed.  FWIW when I use the soft
version with clang for hexagon I still see errors, mostly looking for
INEXACT but not seeing it.


> 
> Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-16 16:26             ` sidneym
@ 2020-04-16 16:34               ` 'Rich Felker'
  0 siblings, 0 replies; 31+ messages in thread
From: 'Rich Felker' @ 2020-04-16 16:34 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On Thu, Apr 16, 2020 at 11:26:52AM -0500, sidneym@codeaurora.org wrote:
> 
> 
> > -----Original Message-----
> > From: Rich Felker <dalias@libc.org>
> > Sent: Thursday, April 16, 2020 10:34 AM
> > To: sidneym@codeaurora.org; musl@lists.openwall.com
> > Subject: Re: [musl] Hexagon DSP support
> > 
> > On Thu, Apr 16, 2020 at 11:36:38AM +0200, Szabolcs Nagy wrote:
> > > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-04-15
> > 13:22:29 -0500]:
> > > > > sqrt/sqrtf should work too (you may want to implement them if
> > > > > there is a single instruction) other math failures are not target
> specific.
> > > >
> > > > In fact that does go away if I used the hardware accelerated routine
> that
> > is
> > > > part of compiler-rt.builtins (__hexagon_sqrt)   Creating an explicit
> > > > reference to compiler-rt-builtins vs just copying the assembly,
> > > > which is preferred?
> > >
> > > the preferred is like on other targets an inline asm block.
> > > i think using __builtin_sqrt may be fine too if you know that all
> > > hexagon compilers support that and doesnt generate an actual sqrt call
> > > (e.g. on gcc that needs -fno-math-errno).
> > 
> > __builtin_sqrt is explicitly allowed to compile to an external call to
> sqrt (at
> > compiler discretion), and thus can't be used to implement the sqrt
> function.
> > If you're implementing a native sqrt it should be inline asm. But the C
> sqrt
> > should work too. If it's not working that indicates a bug in the compiler,
> in the
> > code in musl, or in qemu, and whichever it is we should track that down
> and
> > get it fixed.
> 
> I will add the assembly version for sqrt. There was an issue in qemu when
> using the assembly version but that is fixed.  FWIW when I use the soft
> version with clang for hexagon I still see errors, mostly looking for
> INEXACT but not seeing it.

I saw errors that were actual incorrect results not just wrong
exception flags, like:

src/math/ucb/sqrt.h:49: RU sqrt(0x1.fffffffffffffp+1023) want 0x1p+512 got 0x1.fffffffffffffp+511 ulperr -0.250 = -0x1p-1 + 0x1p-2

At least they all seemed to be in non-default rounding modes though so
the impact is low-ish. These are probably all qemu bugs but hard to
say for sure...

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-04-15 19:29           ` 'Rich Felker'
@ 2020-04-30 22:44             ` sidneym
  2020-04-30 23:51               ` Rich Felker
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-04-30 22:44 UTC (permalink / raw)
  To: musl


[-- Attachment #1: Type: text/plain, Size: 12300 bytes --]

> -----Original Message-----
> From: 'Rich Felker' <dalias@libc.org>
> Sent: Wednesday, April 15, 2020 2:30 PM
> To: sidneym@codeaurora.org
> Cc: musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Wed, Apr 15, 2020 at 02:12:12PM -0500, sidneym@codeaurora.org wrote:
> > src/api/ftw.c:44:1: error: switch condition has boolean value
> > [-Werror,-Wswitch-bool]
> 
> Compiling libc-test with -Werror is invalid. It necessarily must produce
some
> warnings, and needs to be able to distinguish actual errors from them.
> 
> > 8 errors generated.
> > src/functional/dlopen.c:39: dlsym main failed: Symbol not found: main
> > FAIL src/functional/dlopen.exe [status 1]
> > clang-11: warning: argument unused during compilation: '-rdynamic'
> > [-Wunused-command-line-argument]
> 
> This is a clang deficiency that's preventing the test from working.
> 
> > src/functional/ipc_msg.c:62: qid_ds.msg_lspid == 0 failed: got 100,
> > want 0
> > src/functional/ipc_msg.c:64: (long long)qid_ds.msg_stime == 0 failed:
> > got 6815993655711498240, want 0
> > src/functional/ipc_msg.c:67: qid_ds.msg_ctime >= t failed: got
> > 70368744177664, want >= 154502684032321054
> > src/functional/ipc_msg.c:71: qid_ds.msg_qbytes > 0 failed: got 0, want
> > > 0
> > src/functional/ipc_msg.c:76: qid_ds.msg_qnum == 1 failed: got 0, want
> > 1
> > src/functional/ipc_msg.c:77: qid_ds.msg_lspid == getpid() failed: got
> > 100, want 185819
> > src/functional/ipc_msg.c:81: msg_stime is 6815993655711498240 want <=
> > 154502684032321059
> > src/functional/ipc_msg.c:128: child exit status: 256 FAIL
> > src/functional/ipc_msg-static.exe [status 1]
> 
> This is the sysvipc bits headers issue I mentioned. Same with the sem/shm
> ones.

Passing with updated headers and qemu.

> 
> > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
> > did not return EDEADLK, got deadlock
> > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
> did
> > not succed, got deadlock FAIL src/functional/pthread_mutex-static.exe
> > [status 1]
> > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
> > did not return EDEADLK, got
> > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
> did
> > not succed, got deadlock FAIL src/functional/pthread_mutex.exe [status
> > 1]
> 
> This suggests broken atomics. It doesn't look like anything qemu-user
could
> cause (unless it's just failing to emulate the atomics at all).
> 
Updated QEMU to include time64 changes.  Passing now.

> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:148: PTHREAD_MUTEX_ERRORCHECK
> relock
> > did not return EDEADLK, got deadlock
> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented FAIL
> > src/functional/pthread_mutex_pi-static.exe [timed out]
> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:148: PTHREAD_MUTEX_ERRORCHECK
> relock
> > did not return EDEADLK, got deadlock
> > src/functional/pthread_mutex_pi.c:42:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:151: PTHREAD_MUTEX_RECURSIVE
> relock
> > did not succed, got deadlock
> > src/functional/pthread_mutex_pi.c:87:
> > pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed:
> > Function not implemented
> > src/functional/pthread_mutex_pi.c:24: pthread_mutex_unlock(a[0])
> > failed: Operation not permitted FAIL
> > src/functional/pthread_mutex_pi.exe [signal Segmentation fault]
> > src/functional/pthread_robust.c:39:
> > pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed:
> > (pshared==0, pi==0) Function not implemented (setting robust
> > attribute) FAIL src/functional/pthread_robust-static.exe [timed out]
> > src/functional/pthread_robust.c:39:
> > pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed:
> > (pshared==0, pi==0) Function not implemented (setting robust
> > attribute) FAIL src/functional/pthread_robust.exe [timed out]
> 
> These are all expected on qemu-user: kernel prio-inherit and robust
features
> are not emulated by qemu.
> 
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:49: sem value should be 0, got 3 FAIL
> > src/functional/sem_init-static.exe [status 1]
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:19: sem_timedwait(s+1, &ts) failed:
> > Operation timed out
> > src/functional/sem_init.c:49: sem value should be 0, got 3 FAIL
> > src/functional/sem_init.exe [status 1]
> 
> This is probably broken atomics again.

Passed with updated headers and QEMU.

> 
> > src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
> > src/functional/strptime.c:23: "%s": failed to parse "683078400"
> > src/functional/strptime.c:47: "%z": failed to parse "+0200"
> > src/functional/strptime.c:47: "%z": failed to parse "-0530"
> > src/functional/strptime.c:47: "%z": failed to parse "-06"
> > FAIL src/functional/strptime-static.exe [status 1]
> > src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
> > src/functional/strptime.c:23: "%s": failed to parse "683078400"
> > src/functional/strptime.c:47: "%z": failed to parse "+0200"
> > src/functional/strptime.c:47: "%z": failed to parse "-0530"
> > src/functional/strptime.c:47: "%z": failed to parse "-06"
> > FAIL src/functional/strptime.exe [status 1]
> 
> These are expected, functionality musl does not yet support
(future-standard, I
> think).
> 
> > src/functional/utime.c:38: st.st_atim.tv_sec == 0 failed: 1
> > src/functional/utime.c:40: st.st_mtim.tv_sec == 0 failed: 1073741822
> > src/functional/utime.c:47: st.st_atim.tv_sec >= t failed: 0
> > src/functional/utime.c:48: st.st_mtim.tv_sec == 0 failed: 1073741823
> > src/functional/utime.c:55: st.st_mtim.tv_sec >= t failed: 1073741822
> > src/functional/utime.c:59: st.st_atim.tv_sec >= t failed: 0
> > src/functional/utime.c:60: st.st_mtim.tv_sec >= t failed: 1073741823
> > src/functional/utime.c:65: st.st_atim.tv_sec == 1LL<<32 failed: 0
> > src/functional/utime.c:66: st.st_mtim.tv_sec == 1LL<<32 failed: 0 FAIL
> > src/functional/utime-static.exe [status 1]
> > src/functional/utime.c:38: st.st_atim.tv_sec == 0 failed: 1
> > src/functional/utime.c:40: st.st_mtim.tv_sec == 0 failed: 1073741822
> > src/functional/utime.c:47: st.st_atim.tv_sec >= t failed: 0
> > src/functional/utime.c:48: st.st_mtim.tv_sec == 0 failed: 1073741823
> > src/functional/utime.c:55: st.st_mtim.tv_sec >= t failed: 1073741822
> > src/functional/utime.c:59: st.st_atim.tv_sec >= t failed: 0
> > src/functional/utime.c:60: st.st_mtim.tv_sec >= t failed: 1073741823
> > src/functional/utime.c:65: st.st_atim.tv_sec == 1LL<<32 failed: 0
> > src/functional/utime.c:66: st.st_mtim.tv_sec == 1LL<<32 failed: 0 FAIL
> > src/functional/utime.exe [status 1]
> 
> Looks like something is wrong here, possibly wrong struct kstat, or it
could be a
> qemu bug.

It seems like QEMU's TARGET_NR_utimensat needs to changes similar to those
done for clock_get/settime to account for 64bit time_t.   I made some
changes but the last 2 checks at 65 and 66 still fail.

> 
> > src/math/ucb/sqrt.h:47: bad fp exception: RN
> > sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got
> > 0 [...]
> > src/math/special/sqrt.h:74: bad fp exception: RN
> > sqrtl(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
> > FAIL src/math/sqrtl.exe [status 1]
> 
> These are likely all general (not arch-specific) clang floating point
bugs. We
> should see if they also happen compiling other archs without asm versions
of
> sqrt.

Assembly version of sqrt does pass.

> 
> Alternatively it might be a qemu fpu emulation bug. I've seen this kind of
thing
> (inconsistent across arch) on other archs under qemu-user.
> 
> > src/regression/malloc-brk-fail.c:41: malloc(10000) failed (eventhough
> > 64k is available to mmap): Out of memory FAIL
> > src/regression/malloc-brk-fail-static.exe [status 1] FAIL
> > src/regression/malloc-brk-fail.exe [timed out]
> 
> This test does not seem to work on modern kernels much less qemu-user.
> 
> > src/regression/pthread-robust-detach.c:33:
> pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38
> "Function not implemented" want 0 "No error information"
> > src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx,
> &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous
> owner died"
> > src/regression/pthread-robust-detach.c:33:
> pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38
> "Function not implemented" want 0 "No error information"
> > src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx,
> &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous
> owner died"
> > FAIL src/regression/pthread-robust-detach-static.exe [status 1]
> > src/regression/pthread-robust-detach.c:33:
> pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38
> "Function not implemented" want 0 "No error information"
> > src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx,
> &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous
> owner died"
> > src/regression/pthread-robust-detach.c:33:
> pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38
> "Function not implemented" want 0 "No error information"
> > src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx,
> &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous
> owner died"
> > FAIL src/regression/pthread-robust-detach.exe [status 1]
> 
> Expected on qemu-user.
> 
> > src/regression/pthread_cond-smasher.c:140: main thread in phase 0 (0
> > threads inside), finished waiting: Operation timed out FAIL
> > src/regression/pthread_cond-smasher-static.exe [status 1]
> > src/regression/pthread_cond-smasher.c:104: thread 5 in phase 0 (0)
> > finished waiting: Operation timed out FAIL
> > src/regression/pthread_cond-smasher.exe [status 1]
> 
> These could be atomic bugs or just emulation being slow.

I bumped the timeout to 240 seconds it might have fixed these.

> 
> > src/regression/pthread_cond_wait-cancel_ignored.c:52:
> > pthread_cond_wait did not act on cancellation FAIL
> > src/regression/pthread_cond_wait-cancel_ignored-static.exe [status 1]
> > src/regression/pthread_once-deadlock.c:41: sem_timedwait(s,&ts)
> > failed: Operation timed out
> > src/regression/pthread_once-deadlock.c:44: pthread_once deadlocked
> > FAIL src/regression/pthread_once-deadlock-static.exe [status 1]
> 
> These are definitely atomic bugs (either in the arch bits or in qemu).

Also fixed, time64 change to QEMU was key to correcting a lot of these
issues.

> 
> Rich

Hi,

Updated libc-test REPORT and musl patch are attached.  I had to update QEMU,
pulling in 64bit time changes and routing the system calls to those
interfaces.  The routing of the syscalls to the 64bit interfaces is not
committed but the patch for it is here:
https://github.com/qemu/qemu/commit/b792b073e1042ca2668adb57142efba838620329

The Hexagon branch of musl is here:
https://github.com/quic/musl/tree/hexagon

The sqrt routine I added is from compiler-rt.builtins and it is more
involved than other target's versions.  I can see how sqrt might be excluded
from the c-library to keep the target specific complexity to a minimum.

Thanks,

[-- Attachment #2: winmail.dat --]
[-- Type: application/ms-tnef, Size: 277840 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-30 22:44             ` sidneym
@ 2020-04-30 23:51               ` Rich Felker
  2020-05-05 23:37                 ` sidneym
  0 siblings, 1 reply; 31+ messages in thread
From: Rich Felker @ 2020-04-30 23:51 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On Thu, Apr 30, 2020 at 05:44:07PM -0500, sidneym@codeaurora.org wrote:
> > -----Original Message-----
> > From: 'Rich Felker' <dalias@libc.org>
> > Sent: Wednesday, April 15, 2020 2:30 PM
> > To: sidneym@codeaurora.org
> > Cc: musl@lists.openwall.com
> > Subject: Re: [musl] Hexagon DSP support
> > 
> > On Wed, Apr 15, 2020 at 02:12:12PM -0500, sidneym@codeaurora.org wrote:
> > > src/api/ftw.c:44:1: error: switch condition has boolean value
> > > [-Werror,-Wswitch-bool]
> > 
> > Compiling libc-test with -Werror is invalid. It necessarily must produce
> some
> > warnings, and needs to be able to distinguish actual errors from them.
> > 
> > > 8 errors generated.
> > > src/functional/dlopen.c:39: dlsym main failed: Symbol not found: main
> > > FAIL src/functional/dlopen.exe [status 1]
> > > clang-11: warning: argument unused during compilation: '-rdynamic'
> > > [-Wunused-command-line-argument]
> > 
> > This is a clang deficiency that's preventing the test from working.
> > 
> > > src/functional/ipc_msg.c:62: qid_ds.msg_lspid == 0 failed: got 100,
> > > want 0
> > > src/functional/ipc_msg.c:64: (long long)qid_ds.msg_stime == 0 failed:
> > > got 6815993655711498240, want 0
> > > src/functional/ipc_msg.c:67: qid_ds.msg_ctime >= t failed: got
> > > 70368744177664, want >= 154502684032321054
> > > src/functional/ipc_msg.c:71: qid_ds.msg_qbytes > 0 failed: got 0, want
> > > > 0
> > > src/functional/ipc_msg.c:76: qid_ds.msg_qnum == 1 failed: got 0, want
> > > 1
> > > src/functional/ipc_msg.c:77: qid_ds.msg_lspid == getpid() failed: got
> > > 100, want 185819
> > > src/functional/ipc_msg.c:81: msg_stime is 6815993655711498240 want <=
> > > 154502684032321059
> > > src/functional/ipc_msg.c:128: child exit status: 256 FAIL
> > > src/functional/ipc_msg-static.exe [status 1]
> > 
> > This is the sysvipc bits headers issue I mentioned. Same with the sem/shm
> > ones.
> 
> Passing with updated headers and qemu.

Looking at https://github.com/quic/musl/commit/b710ae08dfa8c0841abed44d55eee5e042321bd6
there are new problems:

- Member mode in struct ipc_perm has wrong type. It must be mode_t.
  This can be fixed just by removing the padding. But is there a
  reason you're not using the generic arch-agnostic definition on both
  the kernel and libc side?

- The definitions in bits/msg.h, bits/sem.h, and bits/shm.h are not
  time64-compatible. In fact bits/sem.h is a regression; you had it
  right before and broke it.

- The definition in bits/stat.h is using the wrong types (you need to
  use libc type names for all the members; this is a policy
  requirement to ensure that none inadvertently mismatch). Note that
  there's not even really a need to use an arch-specific header here
  anymore; the kernel definition comes from arch/hexagon/kstat.h and
  the bits/stat.h can just be copied from aarch64 or something else
  with a clean layout.

Also math asm like sqrt.S is not acceptable for upstream.
Arch-specific math files should only be for use of fpu instructions
that perform the operation without the need for any high level flow
control.

> > > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
> > > did not return EDEADLK, got deadlock
> > > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
> > did
> > > not succed, got deadlock FAIL src/functional/pthread_mutex-static.exe
> > > [status 1]
> > > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
> > > did not return EDEADLK, got
> > > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
> > did
> > > not succed, got deadlock FAIL src/functional/pthread_mutex.exe [status
> > > 1]
> > 
> > This suggests broken atomics. It doesn't look like anything qemu-user
> could
> > cause (unless it's just failing to emulate the atomics at all).
> > 
> Updated QEMU to include time64 changes.  Passing now.

It should not be necessary to update qemu for time64 in order for this
to work. Any change you made to qemu to make this work is almost
certainly wrong. According to my reading of the upstream kernel, there
is an existing stable user-kernel syscall ABI for hexagon, so you
can't change any of the existing types or behavior of any of the
existing syscalls.

Looking at your port, I think I've found the real core problem. In:

https://github.com/quic/musl/blob/b710ae08dfa8c0841abed44d55eee5e042321bd6/arch/hexagon/bits/syscall.h.in

I don't see any of the time64 syscalls. Having them defined is
absolutely mandatory for an arch where the unadorned syscalls do not
use 64-bit time_t. If you add them and revert all the incorrect
changes, I think everything will work.

> > Looks like something is wrong here, possibly wrong struct kstat, or it
> could be a
> > qemu bug.
> 
> It seems like QEMU's TARGET_NR_utimensat needs to changes similar to those
> done for clock_get/settime to account for 64bit time_t.   I made some
> changes but the last 2 checks at 65 and 66 still fail.

No. It does not need any change, and any change to it is wrong. It is
implementing an existing ABI that's immutable and that's fine. What
needs to change is that your syscall.h.in needs to define the values
for the time64 syscalls. This will inform musl that the "plain"
syscalls use 32-bit time_t and get you a correct build. Right now you
just have a badly broken build where you've balanced brokenness in one
place with corresponding brokenness in other places until the right
thing comes out.

> > > src/math/ucb/sqrt.h:47: bad fp exception: RN
> > > sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got
> > > 0 [...]
> > > src/math/special/sqrt.h:74: bad fp exception: RN
> > > sqrtl(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
> > > FAIL src/math/sqrtl.exe [status 1]
> > 
> > These are likely all general (not arch-specific) clang floating point
> bugs. We
> > should see if they also happen compiling other archs without asm versions
> of
> > sqrt.
> 
> Assembly version of sqrt does pass.

Yes but writing a large complex function in asm is not reviewable or
maintainable.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-04-30 23:51               ` Rich Felker
@ 2020-05-05 23:37                 ` sidneym
  2020-05-06  0:59                   ` Rich Felker
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-05-05 23:37 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl


[-- Attachment #1: Type: text/plain, Size: 6952 bytes --]

On 2020-04-30 18:51, Rich Felker wrote:
> On Thu, Apr 30, 2020 at 05:44:07PM -0500, sidneym@codeaurora.org wrote:
>> > -----Original Message-----
>> > From: 'Rich Felker' <dalias@libc.org>
>> > Sent: Wednesday, April 15, 2020 2:30 PM
>> > To: sidneym@codeaurora.org
>> > Cc: musl@lists.openwall.com
>> > Subject: Re: [musl] Hexagon DSP support
>> >
>> > On Wed, Apr 15, 2020 at 02:12:12PM -0500, sidneym@codeaurora.org
> wrote:
>> > > src/api/ftw.c:44:1: error: switch condition has boolean value
>> > > [-Werror,-Wswitch-bool]
>> >
>> > Compiling libc-test with -Werror is invalid. It necessarily must
> produce
>> some
>> > warnings, and needs to be able to distinguish actual errors from them.
>> >
>> > > 8 errors generated.
>> > > src/functional/dlopen.c:39: dlsym main failed: Symbol not found:
> main
>> > > FAIL src/functional/dlopen.exe [status 1]
>> > > clang-11: warning: argument unused during compilation: '-rdynamic'
>> > > [-Wunused-command-line-argument]
>> >
>> > This is a clang deficiency that's preventing the test from working.
>> >
>> > > src/functional/ipc_msg.c:62: qid_ds.msg_lspid == 0 failed: got 100,
>> > > want 0
>> > > src/functional/ipc_msg.c:64: (long long)qid_ds.msg_stime == 0
> failed:
>> > > got 6815993655711498240, want 0
>> > > src/functional/ipc_msg.c:67: qid_ds.msg_ctime >= t failed: got
>> > > 70368744177664, want >= 154502684032321054
>> > > src/functional/ipc_msg.c:71: qid_ds.msg_qbytes > 0 failed: got 0,
> want
>> > > > 0
>> > > src/functional/ipc_msg.c:76: qid_ds.msg_qnum == 1 failed: got 0,
> want
>> > > 1
>> > > src/functional/ipc_msg.c:77: qid_ds.msg_lspid == getpid() failed:
> got
>> > > 100, want 185819
>> > > src/functional/ipc_msg.c:81: msg_stime is 6815993655711498240 want
> <=
>> > > 154502684032321059
>> > > src/functional/ipc_msg.c:128: child exit status: 256 FAIL
>> > > src/functional/ipc_msg-static.exe [status 1]
>> >
>> > This is the sysvipc bits headers issue I mentioned. Same with the
> sem/shm
>> > ones.
>> 
>> Passing with updated headers and qemu.
> 
> Looking at
> https://github.com/quic/musl/commit/b710ae08dfa8c0841abed44d55eee5e042321b
> d6
> there are new problems:
> 
> - Member mode in struct ipc_perm has wrong type. It must be mode_t.
>   This can be fixed just by removing the padding. But is there a
>   reason you're not using the generic arch-agnostic definition on both
>   the kernel and libc side?

Updated that type

> 
> - The definitions in bits/msg.h, bits/sem.h, and bits/shm.h are not
>   time64-compatible. In fact bits/sem.h is a regression; you had it
>   right before and broke it.
As you point out below the core of the problem was the missing time64
calls.  I've updated the structures to use what I hope or the correct 
types.

> 
> - The definition in bits/stat.h is using the wrong types (you need to
>   use libc type names for all the members; this is a policy
>   requirement to ensure that none inadvertently mismatch). Note that
>   there's not even really a need to use an arch-specific header here
>   anymore; the kernel definition comes from arch/hexagon/kstat.h and
>   the bits/stat.h can just be copied from aarch64 or something else
>   with a clean layout.

I used OpenRISC's stat.h.

> 
> Also math asm like sqrt.S is not acceptable for upstream.
> Arch-specific math files should only be for use of fpu instructions
> that perform the operation without the need for any high level flow
> control.
This is what I expected and I removed the file.

> 
>> > > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
>> > > did not return EDEADLK, got deadlock
>> > > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
>> > did
>> > > not succed, got deadlock FAIL
> src/functional/pthread_mutex-static.exe
>> > > [status 1]
>> > > src/functional/pthread_mutex.c:145: PTHREAD_MUTEX_ERRORCHECK relock
>> > > did not return EDEADLK, got
>> > > src/functional/pthread_mutex.c:148: PTHREAD_MUTEX_RECURSIVE relock
>> > did
>> > > not succed, got deadlock FAIL src/functional/pthread_mutex.exe
> [status
>> > > 1]
>> >
>> > This suggests broken atomics. It doesn't look like anything qemu-user
>> could
>> > cause (unless it's just failing to emulate the atomics at all).
>> >
>> Updated QEMU to include time64 changes.  Passing now.
> 
> It should not be necessary to update qemu for time64 in order for this
> to work. Any change you made to qemu to make this work is almost
> certainly wrong. According to my reading of the upstream kernel, there
> is an existing stable user-kernel syscall ABI for hexagon, so you
> can't change any of the existing types or behavior of any of the
> existing syscalls.
> 
> Looking at your port, I think I've found the real core problem. In:
> 
> https://github.com/quic/musl/blob/b710ae08dfa8c0841abed44d55eee5e042321bd6
> /arch/hexagon/bits/syscall.h.in
> 
> I don't see any of the time64 syscalls. Having them defined is
> absolutely mandatory for an arch where the unadorned syscalls do not
> use 64-bit time_t. If you add them and revert all the incorrect
> changes, I think everything will work.

Adding those calls helped and cleared up a lot of confusion on my part.


> 
>> > Looks like something is wrong here, possibly wrong struct kstat, or it
>> could be a
>> > qemu bug.
>> 
>> It seems like QEMU's TARGET_NR_utimensat needs to changes similar to
> those
>> done for clock_get/settime to account for 64bit time_t.   I made some
>> changes but the last 2 checks at 65 and 66 still fail.
> 
> No. It does not need any change, and any change to it is wrong. It is
> implementing an existing ABI that's immutable and that's fine. What
> needs to change is that your syscall.h.in needs to define the values
> for the time64 syscalls. This will inform musl that the "plain"
> syscalls use 32-bit time_t and get you a correct build. Right now you
> just have a badly broken build where you've balanced brokenness in one
> place with corresponding brokenness in other places until the right
> thing comes out.

In QEMU I have had to update hexagon/target_structs.h (target_shmid_ds 
and target_semid64_ds) to reflect the size of time_t from abi_ulong 
types to abi_ullong types.

I've attached a new REPORT and the code changes are here:
https://github.com/quic/musl/compare/hexagon

Thanks for your help.

> 
>> > > src/math/ucb/sqrt.h:47: bad fp exception: RN
>> > > sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT
> got
>> > > 0 [...]
>> > > src/math/special/sqrt.h:74: bad fp exception: RN
>> > > sqrtl(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
>> > > FAIL src/math/sqrtl.exe [status 1]
>> >
>> > These are likely all general (not arch-specific) clang floating point
>> bugs. We
>> > should see if they also happen compiling other archs without asm
> versions
>> of
>> > sqrt.
>> 
>> Assembly version of sqrt does pass.
> 
> Yes but writing a large complex function in asm is not reviewable or
> maintainable.
> 
> Rich

[-- Attachment #2: REPORT --]
[-- Type: text/plain, Size: 253799 bytes --]

src/api/ftw.c:44:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISBLK(0))
^~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:45:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISCHR(0))
^~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:46:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISDIR(0))
^~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:47:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISFIFO(0))
^~~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:48:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISREG(0))
^~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:49:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISLNK(0))
^~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/ftw.c:50:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISSOCK(0))
^~~~~~~~~~~~~~
src/api/ftw.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
7 errors generated.
src/api/iso646.c:8:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(0 not_eq 1)
^~~~~~~~~~~~~
src/api/iso646.c:2:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/iso646.c:9:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(0 and 1)
^~~~~~~~~~
src/api/iso646.c:2:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/iso646.c:10:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(0 or 1)
^~~~~~~~~
src/api/iso646.c:2:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/iso646.c:14:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(not 0)
^~~~~~~~
src/api/iso646.c:2:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
4 errors generated.
FAIL src/api/main.exe [status 1]
clang-11: error: no such file or directory: 'src/api/ftw.o'
clang-11: error: no such file or directory: 'src/api/iso646.o'
clang-11: error: no such file or directory: 'src/api/stdlib.o'
clang-11: error: no such file or directory: 'src/api/sys_ipc.o'
clang-11: error: no such file or directory: 'src/api/sys_sem.o'
clang-11: error: no such file or directory: 'src/api/sys_shm.o'
clang-11: error: no such file or directory: 'src/api/sys_stat.o'
clang-11: error: no such file or directory: 'src/api/sys_wait.o'
clang-11: error: no such file or directory: 'src/api/unistd.o'
src/api/stdlib.c:20:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFEXITED(0))
^~~~~~~~~~~~~~~
src/api/stdlib.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/stdlib.c:21:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFSIGNALED(0))
^~~~~~~~~~~~~~~~~
src/api/stdlib.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/stdlib.c:22:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFSTOPPED(0))
^~~~~~~~~~~~~~~~
src/api/stdlib.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
3 errors generated.
src/api/sys_ipc.c:13:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,uid)
^~~~~~~~~~~~
src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_ipc.c:14:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,gid)
^~~~~~~~~~~~
src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_ipc.c:15:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,cuid)
^~~~~~~~~~~~~
src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_ipc.c:16:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,cgid)
^~~~~~~~~~~~~
src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
4 errors generated.
src/api/sys_sem.c:41:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,uid)
^~~~~~~~~~~~
src/api/sys_sem.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_sem.c:42:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,gid)
^~~~~~~~~~~~
src/api/sys_sem.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_sem.c:43:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,cuid)
^~~~~~~~~~~~~
src/api/sys_sem.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_sem.c:44:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,cgid)
^~~~~~~~~~~~~
src/api/sys_sem.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
4 errors generated.
src/api/sys_shm.c:36:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,uid)
^~~~~~~~~~~~
src/api/sys_shm.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_shm.c:37:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,gid)
^~~~~~~~~~~~
src/api/sys_shm.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_shm.c:38:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(uid_t,cuid)
^~~~~~~~~~~~~
src/api/sys_shm.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
src/api/sys_shm.c:39:1: error: initializing 'gid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
F(gid_t,cgid)
^~~~~~~~~~~~~
src/api/sys_shm.c:3:20: note: expanded from macro 'F'
#define F(t,n) {t *y = &x.n;}
                   ^   ~~~~
4 errors generated.
src/api/sys_stat.c:68:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISBLK(0))
^~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:69:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISCHR(0))
^~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:70:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISDIR(0))
^~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:71:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISFIFO(0))
^~~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:72:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISREG(0))
^~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:73:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISLNK(0))
^~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_stat.c:74:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(S_ISSOCK(0))
^~~~~~~~~~~~~~
src/api/sys_stat.c:5:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
7 errors generated.
src/api/sys_wait.c:11:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFEXITED(0))
^~~~~~~~~~~~~~~
src/api/sys_wait.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_wait.c:12:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFSIGNALED(0))
^~~~~~~~~~~~~~~~~
src/api/sys_wait.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_wait.c:13:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFSTOPPED(0))
^~~~~~~~~~~~~~~~
src/api/sys_wait.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
src/api/sys_wait.c:20:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
C(WIFCONTINUED(0))
^~~~~~~~~~~~~~~~~~
src/api/sys_wait.c:4:14: note: expanded from macro 'C'
#define C(n) switch(n){case n:;}
             ^      ~
4 errors generated.
src/api/unistd.c:87:3: error: use of undeclared identifier '_CS_POSIX_V7_THREADS_CFLAGS'
C(_CS_POSIX_V7_THREADS_CFLAGS)
  ^
src/api/unistd.c:88:3: error: use of undeclared identifier '_CS_POSIX_V7_THREADS_LDFLAGS'
C(_CS_POSIX_V7_THREADS_LDFLAGS)
  ^
src/api/unistd.c:117:3: error: use of undeclared identifier '_PC_TIMESTAMP_RESOLUTION'
C(_PC_TIMESTAMP_RESOLUTION)
  ^
src/api/unistd.c:238:3: error: use of undeclared identifier '_SC_XOPEN_UUCP'
C(_SC_XOPEN_UUCP)
  ^
src/api/unistd.c:87:3: error: use of undeclared identifier '_CS_POSIX_V7_THREADS_CFLAGS'
C(_CS_POSIX_V7_THREADS_CFLAGS)
  ^
src/api/unistd.c:88:3: error: use of undeclared identifier '_CS_POSIX_V7_THREADS_LDFLAGS'
C(_CS_POSIX_V7_THREADS_LDFLAGS)
  ^
src/api/unistd.c:117:3: error: use of undeclared identifier '_PC_TIMESTAMP_RESOLUTION'
C(_PC_TIMESTAMP_RESOLUTION)
  ^
src/api/unistd.c:238:3: error: use of undeclared identifier '_SC_XOPEN_UUCP'
C(_SC_XOPEN_UUCP)
  ^
8 errors generated.
src/functional/dlopen.c:39: dlsym main failed: Symbol not found: main
FAIL src/functional/dlopen.exe [status 1]
clang-11: warning: argument unused during compilation: '-rdynamic' [-Wunused-command-line-argument]
src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384, want 0
src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed: got 6823500725968961536, want 0
src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 69713, want >= 1588720066
src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want > 0
src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384, want 1
src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got 0, want 240818
src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
src/functional/ipc_msg.c:130: child exit status: 256
FAIL src/functional/ipc_msg-static.exe [status 1]
src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384, want 0
src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed: got 6823500725968961536, want 0
src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 0, want >= 1588720066
src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want > 0
src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384, want 1
src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got 0, want 240786
src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
src/functional/ipc_msg.c:130: child exit status: 256
FAIL src/functional/ipc_msg.exe [status 1]
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:87: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:87: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:108: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:108: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
FAIL src/functional/pthread_mutex_pi-static.exe [status 1]
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:42: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:87: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:87: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:108: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
src/functional/pthread_mutex_pi.c:108: pthread_mutexattr_setprotocol(&ma, PTHREAD_PRIO_INHERIT) failed: Function not implemented
FAIL src/functional/pthread_mutex_pi.exe [status 1]
src/functional/pthread_robust.c:39: pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed: (pshared==0, pi==0) Function not implemented (setting robust attribute)
FAIL src/functional/pthread_robust-static.exe [timed out]
src/functional/pthread_robust.c:39: pthread_mutexattr_setrobust(&mtx_a, PTHREAD_MUTEX_ROBUST) failed: (pshared==0, pi==0) Function not implemented (setting robust attribute)
FAIL src/functional/pthread_robust.exe [timed out]
src/functional/sscanf.c:73:9: warning: magnitude of floating-point constant too large for type 'double'; maximum is 1.7976931348623157E+308 [-Wliteral-range]
        TEST_F(1.234e1234);
               ^
src/functional/sscanf.c:73:9: warning: magnitude of floating-point constant too large for type 'double'; maximum is 1.7976931348623157E+308 [-Wliteral-range]
src/functional/sscanf.c:74:9: warning: magnitude of floating-point constant too small for type 'double'; minimum is 4.9406564584124654E-324 [-Wliteral-range]
        TEST_F(1.234e-1234);
               ^
src/functional/sscanf.c:74:9: warning: magnitude of floating-point constant too small for type 'double'; minimum is 4.9406564584124654E-324 [-Wliteral-range]
src/functional/sscanf.c:75:9: warning: magnitude of floating-point constant too large for type 'double'; maximum is 1.7976931348623157E+308 [-Wliteral-range]
        TEST_F(1.234e56789);
               ^
src/functional/sscanf.c:75:9: warning: magnitude of floating-point constant too large for type 'double'; maximum is 1.7976931348623157E+308 [-Wliteral-range]
src/functional/sscanf.c:76:9: warning: magnitude of floating-point constant too small for type 'double'; minimum is 4.9406564584124654E-324 [-Wliteral-range]
        TEST_F(1.234e-56789);
               ^
src/functional/sscanf.c:76:9: warning: magnitude of floating-point constant too small for type 'double'; minimum is 4.9406564584124654E-324 [-Wliteral-range]
8 warnings generated.
src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
src/functional/strptime.c:23: "%s": failed to parse "683078400"
src/functional/strptime.c:47: "%z": failed to parse "+0200"
src/functional/strptime.c:47: "%z": failed to parse "-0530"
src/functional/strptime.c:47: "%z": failed to parse "-06"
FAIL src/functional/strptime-static.exe [status 1]
src/functional/strptime.c:23: "%F": failed to parse "1856-07-10"
src/functional/strptime.c:23: "%s": failed to parse "683078400"
src/functional/strptime.c:47: "%z": failed to parse "+0200"
src/functional/strptime.c:47: "%z": failed to parse "-0530"
src/functional/strptime.c:47: "%z": failed to parse "-06"
FAIL src/functional/strptime.exe [status 1]
src/functional/utime.c:63: futimens(fd, ((struct timespec[2]){{.tv_sec=1LL<<32},{.tv_sec=1LL<<32}})) == 0 failed: Not supported
FAIL src/functional/utime-static.exe [status 1]
src/functional/utime.c:63: futimens(fd, ((struct timespec[2]){{.tv_sec=1LL<<32},{.tv_sec=1LL<<32}})) == 0 failed: Not supported
FAIL src/functional/utime.exe [status 1]
X src/math/special/acosh.h:9: RN acosh(0x1.001f1c62cf304p+0) want 0x1.f8d125ff71ccp-6 got 0x1.f8d125ff71cc2p-6 ulperr 1.853 = 0x1p+1 + -0x1.2d785ap-3
X src/math/special/acosh.h:10: RN acosh(0x1.00788c223616fp+0) want 0x1.f0cb8ee812621p-5 got 0x1.f0cb8ee812623p-5 ulperr 1.724 = 0x1p+1 + -0x1.1b0c1ap-2
X src/math/special/acosh.h:11: RN acosh(0x1.007b7a37c7606p+0) want 0x1.f6cb68859ae3p-5 got 0x1.f6cb68859ae2ep-5 ulperr -1.855 = -0x1p+1 + 0x1.280488p-3
X src/math/special/acosh.h:12: RN acosh(0x1.01d173033243cp+0) want 0x1.e7e1b18d99376p-4 got 0x1.e7e1b18d99378p-4 ulperr 1.930 = 0x1p+1 + -0x1.1f3d3ep-4
X src/math/special/acosh.h:13: RN acosh(0x1.01d8f20e90409p+0) want 0x1.ebca3eea5cda5p-4 got 0x1.ebca3eea5cda3p-4 ulperr -1.652 = -0x1p+1 + 0x1.648602p-2
X src/math/special/acosh.h:14: RN acosh(0x1.01ef6122e68bep+0) want 0x1.f74df150afc94p-4 got 0x1.f74df150afc92p-4 ulperr -1.762 = -0x1p+1 + 0x1.e79556p-3
X src/math/special/acosh.h:15: RN acosh(0x1.06822faf07879p+0) want 0x1.ccd73cbc4af78p-3 got 0x1.ccd73cbc4af7ap-3 ulperr 1.674 = 0x1p+1 + -0x1.4df79ep-2
X src/math/special/acosh.h:17: RN acosh(0x1.069d65411ec51p+0) want 0x1.d0928b08facbap-3 got 0x1.d0928b08facbcp-3 ulperr 1.785 = 0x1p+1 + -0x1.b83338p-3
X src/math/special/acosh.h:18: RN acosh(0x1.071d6b2713d08p+0) want 0x1.e1bc6a6c345fdp-3 got 0x1.e1bc6a6c345ffp-3 ulperr 1.818 = 0x1p+1 + -0x1.74a04ep-3
X src/math/special/acosh.h:19: RN acosh(0x1.0728405f5140cp+0) want 0x1.e328ebe92b32cp-3 got 0x1.e328ebe92b32ep-3 ulperr 1.790 = 0x1p+1 + -0x1.ae89ap-3
X src/math/special/acosh.h:20: RN acosh(0x1.07bd2c5c01bcbp+0) want 0x1.f6513c44c131p-3 got 0x1.f6513c44c1312p-3 ulperr 1.719 = 0x1p+1 + -0x1.203932p-2
X src/math/special/acosh.h:21: RN acosh(0x1.1aae7c452c859p+0) want 0x1.cf8d69288e386p-2 got 0x1.cf8d69288e384p-2 ulperr -1.723 = -0x1p+1 + 0x1.1b325ap-2
X src/math/special/acosh.h:23: RN acosh(0x1.1b50764626f1ep+0) want 0x1.d4ec67c71794p-2 got 0x1.d4ec67c717942p-2 ulperr 1.738 = 0x1p+1 + -0x1.0c09dap-2
src/math/special/acosh.h:9: RN acoshl(0x1.001f1c62cf304p+0) want 0x1.f8d125ff71ccp-6 got 0x1.f8d125ff71cc2p-6 ulperr 1.853 = 0x1p+1 + -0x1.2d785ap-3
src/math/special/acosh.h:10: RN acoshl(0x1.00788c223616fp+0) want 0x1.f0cb8ee812621p-5 got 0x1.f0cb8ee812623p-5 ulperr 1.724 = 0x1p+1 + -0x1.1b0c1ap-2
src/math/special/acosh.h:11: RN acoshl(0x1.007b7a37c7606p+0) want 0x1.f6cb68859ae3p-5 got 0x1.f6cb68859ae2ep-5 ulperr -1.855 = -0x1p+1 + 0x1.280488p-3
src/math/special/acosh.h:12: RN acoshl(0x1.01d173033243cp+0) want 0x1.e7e1b18d99376p-4 got 0x1.e7e1b18d99378p-4 ulperr 1.930 = 0x1p+1 + -0x1.1f3d3ep-4
src/math/special/acosh.h:13: RN acoshl(0x1.01d8f20e90409p+0) want 0x1.ebca3eea5cda5p-4 got 0x1.ebca3eea5cda3p-4 ulperr -1.652 = -0x1p+1 + 0x1.648602p-2
src/math/special/acosh.h:14: RN acoshl(0x1.01ef6122e68bep+0) want 0x1.f74df150afc94p-4 got 0x1.f74df150afc92p-4 ulperr -1.762 = -0x1p+1 + 0x1.e79556p-3
src/math/special/acosh.h:15: RN acoshl(0x1.06822faf07879p+0) want 0x1.ccd73cbc4af78p-3 got 0x1.ccd73cbc4af7ap-3 ulperr 1.674 = 0x1p+1 + -0x1.4df79ep-2
src/math/special/acosh.h:17: RN acoshl(0x1.069d65411ec51p+0) want 0x1.d0928b08facbap-3 got 0x1.d0928b08facbcp-3 ulperr 1.785 = 0x1p+1 + -0x1.b83338p-3
src/math/special/acosh.h:18: RN acoshl(0x1.071d6b2713d08p+0) want 0x1.e1bc6a6c345fdp-3 got 0x1.e1bc6a6c345ffp-3 ulperr 1.818 = 0x1p+1 + -0x1.74a04ep-3
src/math/special/acosh.h:19: RN acoshl(0x1.0728405f5140cp+0) want 0x1.e328ebe92b32cp-3 got 0x1.e328ebe92b32ep-3 ulperr 1.790 = 0x1p+1 + -0x1.ae89ap-3
src/math/special/acosh.h:20: RN acoshl(0x1.07bd2c5c01bcbp+0) want 0x1.f6513c44c131p-3 got 0x1.f6513c44c1312p-3 ulperr 1.719 = 0x1p+1 + -0x1.203932p-2
src/math/special/acosh.h:21: RN acoshl(0x1.1aae7c452c859p+0) want 0x1.cf8d69288e386p-2 got 0x1.cf8d69288e384p-2 ulperr -1.723 = -0x1p+1 + 0x1.1b325ap-2
src/math/special/acosh.h:23: RN acoshl(0x1.1b50764626f1ep+0) want 0x1.d4ec67c71794p-2 got 0x1.d4ec67c717942p-2 ulperr 1.738 = 0x1p+1 + -0x1.0c09dap-2
FAIL src/math/acoshl.exe [status 1]
X src/math/special/asinh.h:7: RN asinh(0x1.fbdd0eedf8143p-3) want 0x1.f6cc20d7a594ap-3 got 0x1.f6cc20d7a594cp-3 ulperr 1.513 = 0x1p+1 + -0x1.f327a8p-2
X src/math/special/asinh.h:8: RN asinh(0x1.df2723491f88fp-3) want 0x1.dae2c8444900cp-3 got 0x1.dae2c8444900ap-3 ulperr -1.551 = -0x1p+1 + 0x1.cb8b86p-2
X src/math/special/asinh.h:9: RN asinh(0x1.ef675c6541305p-3) want 0x1.eab20432c9598p-3 got 0x1.eab20432c959ap-3 ulperr 1.568 = 0x1p+1 + -0x1.ba9e34p-2
X src/math/special/asinh.h:10: RN asinh(0x1.f19df3a1722a9p-3) want 0x1.ecd8a7f621554p-3 got 0x1.ecd8a7f621552p-3 ulperr -1.535 = -0x1p+1 + 0x1.dbc1a8p-2
X src/math/special/asinh.h:11: RN asinh(0x1.f1af09dcfa7d6p-3) want 0x1.ece942815ceccp-3 got 0x1.ece942815cecap-3 ulperr -1.526 = -0x1p+1 + 0x1.e5bb5p-2
X src/math/special/asinh.h:12: RN asinh(0x1.f339ebbeac5bap-3) want 0x1.ee68f10a49c42p-3 got 0x1.ee68f10a49c44p-3 ulperr 1.529 = 0x1p+1 + -0x1.e28cbp-2
X src/math/special/asinh.h:13: RN asinh(0x1.f424275dc8787p-3) want 0x1.ef4c7fcb51c56p-3 got 0x1.ef4c7fcb51c54p-3 ulperr -1.642 = -0x1p+1 + 0x1.6e4e9p-2
X src/math/special/asinh.h:14: RN asinh(0x1.f60d54a133665p-3) want 0x1.f127a8dec0c2p-3 got 0x1.f127a8dec0c1ep-3 ulperr -1.512 = -0x1p+1 + 0x1.f3c9eap-2
X src/math/special/asinh.h:15: RN asinh(0x1.fdccdaf285ffdp-3) want 0x1.f8ad4bed7af4cp-3 got 0x1.f8ad4bed7af4ap-3 ulperr -1.576 = -0x1p+1 + 0x1.b1f1f8p-2
X src/math/special/asinh.h:16: RN asinh(0x1.ff5bec94924c7p-3) want 0x1.fa30836c3949ap-3 got 0x1.fa30836c39498p-3 ulperr -1.533 = -0x1p+1 + 0x1.de989p-2
X src/math/special/asinh.h:17: RN asinh(0x1.028e8fd61c8a5p-2) want 0x1.ffc55bd02e9dep-3 got 0x1.ffc55bd02e9ep-3 ulperr 1.670 = 0x1p+1 + -0x1.523c08p-2
X src/math/special/asinh.h:18: RN asinh(0x1.dc71794e1f137p-2) want 0x1.ccbd41a7d058ap-2 got 0x1.ccbd41a7d0588p-2 ulperr -1.585 = -0x1p+1 + 0x1.a944b8p-2
X src/math/special/asinh.h:19: RN asinh(0x1.df308e177c3cbp-2) want 0x1.cf3a638145d7ap-2 got 0x1.cf3a638145d78p-2 ulperr -1.505 = -0x1p+1 + 0x1.fb3684p-2
X src/math/special/asinh.h:20: RN asinh(0x1.ea94e1e267746p-2) want 0x1.d9862533f65f6p-2 got 0x1.d9862533f65f4p-2 ulperr -1.579 = -0x1p+1 + 0x1.af51ecp-2
X src/math/special/asinh.h:21: RN asinh(0x1.ecd4f07608dc7p-2) want 0x1.db8d6fdcc6d74p-2 got 0x1.db8d6fdcc6d76p-2 ulperr 1.517 = 0x1p+1 + -0x1.eeb48p-2
X src/math/special/asinh.h:22: RN asinh(0x1.f30656c78ee7ep-2) want 0x1.e1204e364a186p-2 got 0x1.e1204e364a188p-2 ulperr 1.576 = 0x1p+1 + -0x1.b23ffp-2
X src/math/special/asinh.h:23: RN asinh(0x1.f5c0c6e41b969p-2) want 0x1.e393d3dc3b70ap-2 got 0x1.e393d3dc3b70cp-2 ulperr 1.562 = 0x1p+1 + -0x1.c06dbep-2
X src/math/special/asinh.h:24: RN asinh(0x1.09c58725300e7p-1) want 0x1.fe2c7f25fb172p-2 got 0x1.fe2c7f25fb174p-2 ulperr 1.579 = 0x1p+1 + -0x1.ae9df6p-2
src/math/special/asinh.h:7: RN asinhl(0x1.fbdd0eedf8143p-3) want 0x1.f6cc20d7a594ap-3 got 0x1.f6cc20d7a594cp-3 ulperr 1.513 = 0x1p+1 + -0x1.f327a8p-2
src/math/special/asinh.h:8: RN asinhl(0x1.df2723491f88fp-3) want 0x1.dae2c8444900cp-3 got 0x1.dae2c8444900ap-3 ulperr -1.551 = -0x1p+1 + 0x1.cb8b86p-2
src/math/special/asinh.h:9: RN asinhl(0x1.ef675c6541305p-3) want 0x1.eab20432c9598p-3 got 0x1.eab20432c959ap-3 ulperr 1.568 = 0x1p+1 + -0x1.ba9e34p-2
src/math/special/asinh.h:10: RN asinhl(0x1.f19df3a1722a9p-3) want 0x1.ecd8a7f621554p-3 got 0x1.ecd8a7f621552p-3 ulperr -1.535 = -0x1p+1 + 0x1.dbc1a8p-2
src/math/special/asinh.h:11: RN asinhl(0x1.f1af09dcfa7d6p-3) want 0x1.ece942815ceccp-3 got 0x1.ece942815cecap-3 ulperr -1.526 = -0x1p+1 + 0x1.e5bb5p-2
src/math/special/asinh.h:12: RN asinhl(0x1.f339ebbeac5bap-3) want 0x1.ee68f10a49c42p-3 got 0x1.ee68f10a49c44p-3 ulperr 1.529 = 0x1p+1 + -0x1.e28cbp-2
src/math/special/asinh.h:13: RN asinhl(0x1.f424275dc8787p-3) want 0x1.ef4c7fcb51c56p-3 got 0x1.ef4c7fcb51c54p-3 ulperr -1.642 = -0x1p+1 + 0x1.6e4e9p-2
src/math/special/asinh.h:14: RN asinhl(0x1.f60d54a133665p-3) want 0x1.f127a8dec0c2p-3 got 0x1.f127a8dec0c1ep-3 ulperr -1.512 = -0x1p+1 + 0x1.f3c9eap-2
src/math/special/asinh.h:15: RN asinhl(0x1.fdccdaf285ffdp-3) want 0x1.f8ad4bed7af4cp-3 got 0x1.f8ad4bed7af4ap-3 ulperr -1.576 = -0x1p+1 + 0x1.b1f1f8p-2
src/math/special/asinh.h:16: RN asinhl(0x1.ff5bec94924c7p-3) want 0x1.fa30836c3949ap-3 got 0x1.fa30836c39498p-3 ulperr -1.533 = -0x1p+1 + 0x1.de989p-2
src/math/special/asinh.h:17: RN asinhl(0x1.028e8fd61c8a5p-2) want 0x1.ffc55bd02e9dep-3 got 0x1.ffc55bd02e9ep-3 ulperr 1.670 = 0x1p+1 + -0x1.523c08p-2
src/math/special/asinh.h:18: RN asinhl(0x1.dc71794e1f137p-2) want 0x1.ccbd41a7d058ap-2 got 0x1.ccbd41a7d0588p-2 ulperr -1.585 = -0x1p+1 + 0x1.a944b8p-2
src/math/special/asinh.h:19: RN asinhl(0x1.df308e177c3cbp-2) want 0x1.cf3a638145d7ap-2 got 0x1.cf3a638145d78p-2 ulperr -1.505 = -0x1p+1 + 0x1.fb3684p-2
src/math/special/asinh.h:20: RN asinhl(0x1.ea94e1e267746p-2) want 0x1.d9862533f65f6p-2 got 0x1.d9862533f65f4p-2 ulperr -1.579 = -0x1p+1 + 0x1.af51ecp-2
src/math/special/asinh.h:21: RN asinhl(0x1.ecd4f07608dc7p-2) want 0x1.db8d6fdcc6d74p-2 got 0x1.db8d6fdcc6d76p-2 ulperr 1.517 = 0x1p+1 + -0x1.eeb48p-2
src/math/special/asinh.h:22: RN asinhl(0x1.f30656c78ee7ep-2) want 0x1.e1204e364a186p-2 got 0x1.e1204e364a188p-2 ulperr 1.576 = 0x1p+1 + -0x1.b23ffp-2
src/math/special/asinh.h:23: RN asinhl(0x1.f5c0c6e41b969p-2) want 0x1.e393d3dc3b70ap-2 got 0x1.e393d3dc3b70cp-2 ulperr 1.562 = 0x1p+1 + -0x1.c06dbep-2
src/math/special/asinh.h:24: RN asinhl(0x1.09c58725300e7p-1) want 0x1.fe2c7f25fb172p-2 got 0x1.fe2c7f25fb174p-2 ulperr 1.579 = 0x1p+1 + -0x1.ae9df6p-2
FAIL src/math/asinhl.exe [status 1]
X src/math/special/erfc.h:6: RN erfc(0x1.5db559fe5c0bap+0) want 0x1.b53cf571d328fp-5 got 0x1.b53cf571d328cp-5 ulperr -2.609 = -0x1.8p+1 + 0x1.900982p-2
src/math/special/erfc.h:6: RN erfcl(0x1.5db559fe5c0bap+0) want 0x1.b53cf571d328fp-5 got 0x1.b53cf571d328cp-5 ulperr -2.609 = -0x1.8p+1 + 0x1.900982p-2
FAIL src/math/erfcl.exe [status 1]
X src/math/special/exp2.h:12: bad fp exception: RN exp2(-0x1.ff8p+9)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
X src/math/special/exp2.h:18: bad fp exception: RN exp2(-0x1.ff8p+9)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
X src/math/special/exp2.h:20: bad fp exception: RN exp2(-0x1p+10)=0x1p-1024, want 0 got INEXACT|UNDERFLOW
X src/math/special/exp2.h:21: bad fp exception: RN exp2(-0x1.004p+10)=0x1p-1025, want 0 got INEXACT|UNDERFLOW
X src/math/special/exp2.h:22: bad fp exception: RN exp2(-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/special/exp2.h:12: bad fp exception: RN exp2l(-0x1.ff8p+9)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/special/exp2.h:18: bad fp exception: RN exp2l(-0x1.ff8p+9)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/special/exp2.h:20: bad fp exception: RN exp2l(-0x1p+10)=0x1p-1024, want 0 got INEXACT|UNDERFLOW
src/math/special/exp2.h:21: bad fp exception: RN exp2l(-0x1.004p+10)=0x1p-1025, want 0 got INEXACT|UNDERFLOW
src/math/special/exp2.h:22: bad fp exception: RN exp2l(-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
FAIL src/math/exp2l.exe [status 1]
src/math/sanity/fma.h:1: RN fmal(-0x1.02239f3c6a8f1p+3,0x1.22484b9ef31fp+2,0x1.52fb12ef638a1p-1) want -0x1.1f69545c32effp+5 got -0x1.9ee52705ep+4 ulperr 1406739496828928.000 = 0x1.3fdb04p+50 + -0x1.759846p-3
src/math/sanity/fma.h:2: RN fmal(0x1.161868e18bc67p+2,-0x1.1c6a6cdce75e8p+3,0x1.ab3ff8575b21dp-5) want -0x1.348be0b9d32d3p+5 got -0x1.c8a99f416p+3 ulperr 3419582362550272.000 = 0x1.84c2f2p+51 + 0x1.b43916p-3
src/math/sanity/fma.h:3: RN fmal(-0x1.0c34b3e01e6e7p+3,-0x1.61bde29e83f6dp+1,0x1.eb4a2e7ce0693p+2) want 0x1.ed6e27fca81b7p+4 got 0x1.487be8a56cp+2 ulperr -7235829650948096.000 = -0x1.9b4f2ep+52 + -0x1.f11488p-2
src/math/sanity/fma.h:4: RN fmal(-0x1.a206f0a19dcc4p+2,0x1.24527f7b576acp+2,-0x1.95882b433fad3p-1) want -0x1.ea02e2365f336p+4 got 0x1.2e3092a8ap+3 ulperr 11278458491502592.000 = 0x1.408d96p+53 + 0x1.41da3ap-2
src/math/sanity/fma.h:5: RN fmal(0x1.288bbb0d6a1e6p+3,0x1.33edd910a3c01p+2,-0x1.1e159e36313eep-1) want 0x1.603abfa620e23p+5 got -0x1.7341dbb0dp+2 ulperr -7012890246643712.000 = -0x1.8ea2fcp+52 + -0x1.7be8ccp-3
src/math/special/fma.h:42: RN fmal(0x1p+0,0x1p+0,-0x1p-1074) want 0x1p+0 got -0x1.fffffp-43 ulperr -4503599627370496.000 = -0x1p+52 + 0x0p+0
src/math/special/fma.h:43: bad fp exception: RN fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022)=0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:43: RN fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.fffffffffffffp-1022 got 0x1p-1074 ulperr -9007199254740992.000 = -0x1p+53 + 0x0p+0
src/math/special/fma.h:44: bad fp exception: RN fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022)=0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:44: RN fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.fffffffffffffp-1022 got -0x0p+0 ulperr -9007199254740992.000 = -0x1p+53 + 0x0p+0
src/math/special/fma.h:45: bad fp exception: RN fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:45: RN fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.fffffffffffffp-1022 got -0x1p-1074 ulperr 9007199254740992.000 = 0x1p+53 + 0x0p+0
src/math/special/fma.h:46: bad fp exception: RN fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:46: RN fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.fffffffffffffp-1022 got 0x0p+0 ulperr 9007199254740992.000 = 0x1p+53 + 0x0p+0
src/math/special/fma.h:47: RN fmal(0x1p-1074,-0x1p-1074,0x1p-1074) want 0x1p-1074 got -0x0p+0 ulperr -1.000 = -0x1p+0 + 0x0p+0
src/math/special/fma.h:48: RN fmal(0x1p-1074,-0x1p-1074,-0x1p-1074) want -0x1p-1074 got -0x0p+0 ulperr 1.000 = 0x1p+0 + 0x0p+0
src/math/special/fma.h:49: RN fmal(0x1.0000000000001p+0,0x1p+0,0x1p+53) want 0x1.0000000000001p+53 got 0x1.000008p+12 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:50: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p+53) want 0x1.0000000000001p+53 got 0x1.ffc02p+10 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:51: RN fmal(0x1p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp+53) want 0x1.fffffffffffffp+53 got -0x1.ffffep+10 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:52: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep+53) want 0x1.fffffffffffffp+53 got 0x1.ffc02p+10 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:53: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p-52) want 0x1.0000000000001p+0 got -0x1.fffffp-42 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:54: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp-53) want 0x1.0000000000001p+0 got -0x1.fffff8p-41 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:55: RN fmal(0x1.0000000000005p+0,0x1.ffffffffffffbp-1,0x1p-52) want 0x1.0000000000003p+0 got -0x1.8fffff8p-37 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:56: RN fmal(0x1.0000000000006p+0,0x1.ffffffffffffdp-1,0x1p-52) want 0x1.0000000000005p+0 got -0x1.1fffff8p-37 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:75: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff5p+0 got 0x1.6800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:76: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1p+0) want 0x1.ffffffffffff9p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:77: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffff7p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:78: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffff5p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:79: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffff7p+0 got 0x1.f800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:80: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffff5p+0 got 0x1.f800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:81: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffff7p+0 got 0x1.2000004p-36 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:82: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffff5p+0 got 0x1.2000004p-36 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:83: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.fffffffffffffp-1) want 0x1.ffffffffffff7p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:84: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffff5p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:85: RN fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff3p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:86: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep-1) want 0x1.fffffffffffffp+0 got -0x1.fffffp-42 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:87: RN fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffp-42 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:88: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.fffffffffffffp-1) want 0x1.fffffffffffffp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:89: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:90: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:91: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1p+0) want 0x1.fffffffffffffp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:92: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:93: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:94: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:95: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:96: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffffdp+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:97: RN fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffbp+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:98: RN fmal(0x1.5872449b765b9p+0,0x1.c9acf91f8de2bp+0,0x1.9265607e4d168p+0) want 0x1.fd190c77c2a67p+1 got -0x1.b3fc37bedp-4 ulperr -9195829923414016.000 = -0x1.055c78p+53 + -0x1.fffc98p-2
src/math/special/fma.h:99: RN fmal(0x1.81d010b146d0ep+0,0x1.2d3c680dc9071p+0,0x1.a80b69538754cp+0) want 0x1.b7040b44973a7p+1 got 0x1.4d0cb20197p+1 ulperr -1864177270390784.000 = -0x1.a7dd66p+50 + 0x1.ffacbcp-2
src/math/special/fma.h:100: RN fmal(0x1.6a44f2252b6a2p+0,0x1.da452a378b832p+0,0x1.1fe2ce329104p+0) want 0x1.df842b6f48b13p+1 got 0x1.12e95c1ba4p+0 ulperr -6017592242208768.000 = -0x1.560f7ep+52 + 0x1.ffdda2p-2
src/math/special/fma.h:101: RN fmal(0x1.096b1d26463eep+0,0x1.d846d3e34333p+0,0x1.721e3480922b8p+0) want 0x1.ade2909c0269fp+1 got -0x1.a139d9b2cp-1 ulperr -9397596749561856.000 = -0x1.0b1884p+53 + -0x1.ffe5ecp-2
src/math/special/fma.h:102: RN fmal(0x1.99bd3434c454bp+0,0x1.03cb8e4115bdep+0,0x1.109f107188b08p+0) want 0x1.5837a47d37fafp+1 got 0x1.cfdec0c00ap+0 ulperr -1975290892910592.000 = -0x1.c1211p+50 + 0x1.ffc604p-2
src/math/special/fma.h:103: RN fmal(0x1.ba930a0a78ed2p+0,0x1.8c24e8d67f636p+0,0x1.ac49dbfbf8affp+0) want 0x1.164947ae6a5d9p+2 got -0x1.33e3b04edp-2 ulperr -5234191281160192.000 = -0x1.298782p+52 + -0x1.fffb3p-2
src/math/special/fma.h:104: RN fmal(0x1.be224ad773191p+0,0x1.d96b77169731fp+0,0x1.662cfb75d8edep+0) want 0x1.27cd67e720f79p+2 got 0x1.e4711611c78p+1 ulperr -942615600037888.000 = -0x1.aca6e6p+49 + 0x1.ffc372p-2
src/math/special/fma.h:105: RN fmal(0x1.59e7a1b0bdb3cp+0,0x1.2decba4d46421p+0,0x1.88f4062e96df5p+0) want 0x1.90749e4794f79p+1 got -0x1.b3c84a9a88p-1 ulperr -8961479327875072.000 = -0x1.fd66bp+52 + -0x1.ffe4c4p-2
src/math/special/fma.h:106: RN fmal(0x1.22edf4b4da9a7p+0,0x1.dfa8d65f506cdp+0,0x1.2799208da2fbap+0) want 0x1.a45a1e99ed7a9p+1 got 0x1.a0bdfb8976p-1 ulperr -5562059957731328.000 = -0x1.3c2aap+52 + 0x1.ffe5f4p-2
src/math/special/fma.h:107: RN fmal(0x1.ad5b991a2a279p+0,0x1.f02fd26706024p+0,0x1.831cdd5c8797cp+0) want 0x1.30d3a2ac90a61p+2 got 0x1.c7c15e1c82p+1 ulperr -1353701616779264.000 = -0x1.33cbcep+50 + 0x1.ffc708p-2
src/math/special/fma.h:108: RN fmal(0x1.531f9620e764ap+0,0x1.cad61b54d4425p+0,0x1.df817cae8a9afp+0) want 0x1.0fd4e7f8671ddp+2 got 0x1.8e74e26059p+1 ulperr -1277252138434560.000 = -0x1.2269dcp+50 + 0x1.ffce32p-2
src/math/special/fma.h:109: RN fmal(0x1.629a5ad79494fp+0,0x1.049e58693f4c4p+0,0x1.45b0109e4d00cp+0) want 0x1.5758154e14965p+1 got -0x1.01173c9c2p-3 ulperr -6322847379095552.000 = -0x1.67698ap+52 + -0x1.fffbfcp-2
src/math/special/fma.h:110: RN fmal(0x1.2f52b53f9240ap+0,0x1.1d5c686dbb0dap+0,0x1.6da3e392a4fd4p+0) want 0x1.5fe03a6795913p+1 got 0x1.5bdb7d9084p+0 ulperr -3130480329228288.000 = -0x1.63e4f8p+51 + 0x1.ffd484p-2
src/math/special/fma.h:111: RN fmal(0x1.058667552b49ep+0,0x1.23307bacc1c42p+0,0x1.5b059b47cd8f5p+0) want 0x1.423f752486d13p+1 got -0x1.4bfb042744p+0 ulperr -8589176530272256.000 = -0x1.e83cf8p+52 + -0x1.ffd68p-2
src/math/special/fma.h:112: RN fmal(0x1.a717d95337ed8p+0,0x1.2b1c37846aaadp+0,0x1.be65672f885b1p+0) want 0x1.d65e72303c075p+1 got -0x1.7e0573ec04p+1 ulperr -14995408015065088.000 = -0x1.aa31f4p+53 + -0x1.ffa07ep-2
src/math/special/fma.h:113: RN fmal(0x1.deb79287b3d32p+0,0x1.62776b829babap+0,0x1.67daf18bd2eb1p+0) want 0x1.ff5a0d45c69d7p+1 got 0x1.ad881652ap-3 ulperr -8523520438960128.000 = -0x1.e4818cp+52 + 0x1.fff94ap-2
src/math/special/fma.h:114: RN fmal(0x1.fbf12d3a6de91p+0,0x1.879fe6124f11p+0,0x1.9f3f1247a8641p+0) want 0x1.2a126c6980019p+2 got 0x1.45e3d61a84p+2 ulperr 489379780886528.000 = 0x1.bd169cp+48 + 0x1.ffae88p-2
src/math/special/fma.h:115: RN fmal(0x1.c589628460e01p+0,0x1.e1bec1c797533p+0,0x1.349f30cdb84bbp+0) want 0x1.2286118b6f6e5p+2 got -0x1.8e9d95e0668p+1 ulperr -8617206560587776.000 = -0x1.e9d4dcp+52 + -0x1.ffce2cp-2
src/math/special/fma.h:116: RN fmal(0x1.46fd6c2c924ebp+0,0x1.65e2f02e730a1p+0,0x1.37739d2751098p+0) want 0x1.804a71c1f1273p+1 got 0x1.855d7947cbp+0 ulperr -3335623268106240.000 = -0x1.7b376ap+51 + 0x1.ffcf54p-2
src/math/special/fma.h:117: RN fmal(0x1.f99e595ae11fdp+0,0x1.bd33d9a1d81bp+0,0x1.932a2a2e244c1p+0) want 0x1.409e34f8f2f89p+2 got -0x1.7a49668944p+2 ulperr -12295261934059520.000 = -0x1.5d73cep+53 + -0x1.ffa16ep-2
src/math/special/fma.h:118: RN fmal(0x1.59ea1e56bfe55p+0,0x1.6f46b7d412a44p+0,0x1.80f2bc9a32cc3p+0) want 0x1.b89c7640e32ffp+1 got -0x1.ca180bfb6p-3 ulperr -8254993714905088.000 = -0x1.d53df8p+52 + -0x1.fff8d8p-2
src/math/special/fma.h:119: RN fmal(0x1.61490fcb44129p+0,0x1.0038ec4fc35c2p+0,0x1.df7436ed7a7b7p+0) want 0x1.a085ea68d05cfp+1 got -0x1.5ed2c690f7p+1 ulperr -13499301254660096.000 = -0x1.7fac58p+53 + -0x1.ffa84cp-2
src/math/special/fma.h:120: RN fmal(0x1.d41b98788502bp+0,0x1.1a7b77843aca6p+0,0x1.05be891837d36p+0) want 0x1.8523596ceced9p+1 got -0x1.48c8fc403cp-1 ulperr -8291801584631808.000 = -0x1.d75598p+52 + -0x1.ffeb74p-2
src/math/special/fma.h:121: RN fmal(0x1.3153cf6f69af9p+0,0x1.aaa947e38e57ap+0,0x1.8519f9b590645p+0) want 0x1.c0fcab7b46369p+1 got 0x1.25f4f4bd5p-3 ulperr -7575453653008384.000 = -0x1.ae9d5cp+52 + 0x1.fffb68p-2
src/math/special/fma.h:122: RN fmal(0x1.c25a1f73581aap+0,0x1.0a51ffca372ap+0,0x1.0c77e3ebac5f3p+0) want 0x1.707ce48c7d72dp+1 got -0x1.3261c9a0ep+1 ulperr -11872436362412032.000 = -0x1.516f58p+53 + -0x1.ffb368p-2
src/math/special/fma.h:123: RN fmal(0x1.829c2cde44b7p+0,0x1.f692e86d8cb36p+0,0x1.455e72d264bfp+0) want 0x1.0f16a3b8b3f97p+2 got -0x1.684386466p+0 ulperr -6353495191977984.000 = -0x1.692786p+52 + -0x1.ffe97cp-2
src/math/special/fma.h:124: RN fmal(0x1.94729588dcc69p+0,0x1.c3bb794c6edf8p+0,0x1.9da4e94d262d2p+0) want 0x1.19d4bd84d9fd3p+2 got 0x1.e1b9a2757p-1 ulperr -3898698849320960.000 = -0x1.bb3b12p+51 + 0x1.fff0f2p-2
src/math/special/fma.h:125: RN fmal(0x1.e6a5e7e39c3d5p+0,0x1.1b69af2bdd978p+0,0x1.e7ef1eafa119cp+0) want 0x1.00ac5b44c9f31p+2 got -0x1.6777d5d394p+1 ulperr -7677358731427840.000 = -0x1.b46846p+52 + -0x1.ffd312p-2
src/math/special/fma.h:126: RN fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022) want 0x1.b594d0e4368efp-1022 got -0x1.9dedc9561p-1023 ulperr -11338968138252288.000 = -0x1.4245dap+53 + -0x1.ffcc42p-2
src/math/special/fma.h:127: RN fmal(0x1.022db53c98d14p-1022,0x1.21157eef74848p-2,0x1.2f880432b1bc1p-1022) want 0x1.786ad60a02b3dp-1022 got -0x1.150255ac98p-1022 ulperr -11495199721127936.000 = -0x1.46b696p+53 + -0x1.ffbacp-2
src/math/special/fma.h:128: RN fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022) want 0x1.cbb085199a3f5p-1022 got -0x1.6ed115da2f8p-1023 ulperr -11313497908445184.000 = -0x1.418c88p+53 + -0x1.ffd226p-2
src/math/special/fma.h:129: RN fmal(0x1.adbc3a9d816dep-1022,0x1.e039d4431e3cdp-2,0x1.93ceef6fe18a2p-1022) want 0x1.2eabb7dc0e2f1p-1021 got 0x1.ef7b6794e3p-1023 ulperr -3145487481831424.000 = -0x1.6599bcp+51 + 0x1.ffe108p-2
src/math/special/fma.h:130: RN fmal(0x1.645aa5c2df3afp-1022,0x1.649edfcad854fp-2,0x1.8b43e0bbaeb01p-1022) want 0x1.03af571d2b505p-1021 got 0x1.0ce86163c02p-1021 ulperr 162249436037120.000 = 0x1.272148p+47 + 0x1.ffbcc6p-2
src/math/special/fma.h:131: RN fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022) want 0x1.ad9ce7fcefa3fp-1022 got -0x1.12bc4931e6p-1025 ulperr -8161980292530176.000 = -0x1.cff472p+52 + -0x1.fff76ap-2
src/math/special/fma.h:132: RN fmal(0x1.8ee3feb00c3e7p-1022,0x1.53bd9353313bcp-2,0x1.5501b57dc3b6fp-1022) want 0x1.d9598906f0bb3p-1022 got -0x1.4660b83f57p-1022 ulperr -14068955652030464.000 = -0x1.8fdd2p+53 + -0x1.ffae68p-2
src/math/special/fma.h:133: RN fmal(0x1.161225cfa61e2p-1022,0x1.b6dd69a0af5bp-2,0x1.924ffc3ead5c3p-1022) want 0x1.04be6fc25367bp-1021 got -0x1.f3ab56daa8p-1022 ulperr -8982192881401856.000 = -0x1.fe941cp+52 + -0x1.ffc18ap-2
src/math/special/fma.h:134: RN fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022) want 0x1.70b6c3169f043p-1022 got -0x1.a779baefbe8p-1023 ulperr -10211413595258880.000 = -0x1.2239dp+53 + -0x1.ffcb1p-2
src/math/special/fma.h:135: RN fmal(0x1.ce0e2ea55040ep-1022,0x1.ce5a55fa3828dp-2,0x1.f2f444d50ce59p-1022) want 0x1.61ca36f5a8a79p-1021 got -0x1.173f0cea128p-1022 ulperr -8680214267691008.000 = -0x1.ed69bep+52 + -0x1.ffdd18p-2
src/math/special/fma.h:136: RN fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022) want 0x1.1440cf1c105ebp-1021 got -0x1.f88fda6p-1030 ulperr -4877233864835072.000 = -0x1.153d18p+52 + -0x1.ffffcp-2
src/math/special/fma.h:137: RN fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022) want 0x1.1186e1f77012dp-1021 got -0x1.2ffba526fcp-1025 ulperr -5146168610783232.000 = -0x1.24869cp+52 + -0x1.fffb4p-2
src/math/special/fma.h:138: RN fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022) want 0x1.8d86310bad175p-1022 got -0x1.1b755c367f8p-1023 ulperr -9486646453993472.000 = -0x1.0da07p+53 + -0x1.ffdc92p-2
src/math/special/fma.h:139: RN fmal(0x1.fb3391a4b1d23p-1022,0x1.4d8705b057caep-2,0x1.d026cb6dae73bp-1022) want 0x1.3aad18b424c67p-1021 got -0x1.0a1784c7c6cp-1021 ulperr -10216978799132672.000 = -0x1.22624ep+53 + -0x1.ffbd7ap-2
src/math/special/fma.h:140: RN fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022) want 0x1.c0048fd33a417p-1022 got -0x1.d026e457f1p-1024 ulperr -9922974329077760.000 = -0x1.1a0724p+53 + -0x1.ffe2fep-2
src/math/special/fma.h:141: RN fmal(0x1.aa9eff070281cp-1022,0x1.fab05661b48ebp-2,0x1.cbe2af6c69c6ep-1022) want 0x1.4f7ddbe122765p-1021 got 0x1.9e529858dap-1023 ulperr -4079821109854208.000 = -0x1.cfd26cp+51 + 0x1.ffe61ap-2
src/math/special/fma.h:142: RN fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022) want 0x1.e0e762ee2e7c5p-1022 got -0x1.e2fe0f96ecp-1023 ulperr -12708596701724672.000 = -0x1.693336p+53 + -0x1.ffc3ap-2
src/math/special/fma.h:143: RN fmal(0x1.4dab43918a9a8p-1022,0x1.ed667442b4751p-2,0x1.3f25f82e02e3ep-1022) want 0x1.dfec0ee732dcbp-1022 got 0x1.6a41c4d18ap-1022 ulperr -2069987942465536.000 = -0x1.d6a928p+50 + 0x1.ffa57p-2
src/math/special/fma.h:144: RN fmal(0x1.7943735951931p-1022,0x1.fa6a357c5c9ddp-2,0x1.0bed44b0b71b4p-1022) want 0x1.c6803a6059abfp-1022 got 0x1.0e970cce134p-1022 ulperr -3235394032238592.000 = -0x1.6fd25cp+51 + 0x1.ffbc5ap-2
src/math/special/fma.h:145: RN fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022) want 0x1.8640492c45959p-1022 got -0x1.3271a1b38p-1027 ulperr -7033839486500864.000 = -0x1.8fd3d6p+52 + -0x1.fffd9cp-2
src/math/special/fma.h:146: RN fmal(0x1.f52172c56bdf5p-1022,0x1.672b2de422734p-2,0x1.7bc5d708e5a34p-1022) want 0x1.15c5b95145cc7p-1021 got 0x1.3cf4f71d188p-1021 ulperr 689341647028224.000 = 0x1.3979eep+49 + 0x1.ffb0c2p-2
src/math/special/fma.h:147: RN fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022) want 0x1.e7fa0dd76fbefp-1022 got -0x1.60a5d541bp-1024 ulperr -10135539776749568.000 = -0x1.2011c2p+53 + -0x1.ffe9f6p-2
src/math/special/fma.h:148: RN fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022) want 0x1.b63a7f56fce1fp-1022 got -0x1.497a9bc52p-1024 ulperr -9158461560455168.000 = -0x1.044c94p+53 + -0x1.ffeb68p-2
src/math/special/fma.h:149: RN fmal(0x1.f73d5f4e81fd8p-1022,0x1.7ccff2642124ap-2,0x1.e7d836a0c8308p-1022) want 0x1.517f1763126d3p-1021 got -0x1.06939f3372p-1021 ulperr -10556597969354752.000 = -0x1.2c095cp+53 + -0x1.ffbe5cp-2
src/math/special/fma.h:150: RN fmal(0x1.b4328925969fbp-1022,0x1.8fa02832a22d5p-2,0x1.2084598e2f8c6p-1022) want 0x1.cabf43838dc51p-1022 got -0x1.7c61d65f0a4p-1022 ulperr -14762118276448256.000 = -0x1.a3908cp+53 + -0x1.ffa0e8p-2
src/math/special/fma.h:151: RN fmal(0x1.66ee60a92676fp-1022,0x1.eddd2e7681ce4p-2,0x1.b81d57daeb3a7p-1022) want 0x1.329c918ffb683p-1021 got 0x1.cd379885b8p-1025 ulperr -4886854591578112.000 = -0x1.15c918p+52 + 0x1.fff8ccp-2
src/math/special/fma.h:152: RN fmal(0x1.ff2737585895dp-1022,0x1.fb4bf3828ae4ap-2,0x1.4a866847740fp-1022) want 0x1.23e07e4dbbeabp-1021 got 0x1.46c53f7571p-1023 ulperr -3697601232764928.000 = -0x1.a45e5cp+51 + 0x1.ffeb94p-2
src/math/special/fma.h:153: RN fmal(0x1.5e2008d269a86p-1022,0x1.507bbbe4d78eep-2,0x1.6220c6f83f636p-1022) want 0x1.d52d9874f1c75p-1022 got 0x1.eda0503c4ap-1023 ulperr -3911886277967872.000 = -0x1.bcbaep+51 + 0x1.ffc24cp-2
src/math/special/fma.h:154: RN fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022) want 0x1.9864925e2fb0fp-1022 got -0x1.53ae580e8cp-1025 ulperr -7931489798848512.000 = -0x1.c2da5ep+52 + -0x1.fff562p-2
src/math/special/fma.h:155: RN fmal(0x1.7b353b81e793dp-1022,0x1.82b426f874c6dp-2,0x1.d92b19d21fd5cp-1022) want 0x1.342fb0c544a79p-1021 got 0x1.2af4c8aebe4p-1022 ulperr -2792024021401600.000 = -0x1.3d6a98p+51 + 0x1.ffdaa2p-2
src/math/special/fma.h:156: RN fmal(0x1.5be667823370ap-1022,0x1.a8a99b163869bp-2,0x1.95456b68dc3bcp-1022) want 0x1.12c638de03c71p-1021 got 0x1.49af7fc787p-1023 ulperr -3383908364189696.000 = -0x1.80b4b2p+51 + 0x1.ffeb66p-2
src/math/special/fma.h:157: RN fmal(0x1.17b0fc6c850e5p-1022,0x1.d1d0a4853c315p-2,0x1.36b79f7c0c24p-1022) want 0x1.b5f2baff5635dp-1022 got 0x1.6a19304724p-1026 ulperr -7306334223466496.000 = -0x1.9f5128p+52 + 0x1.fffa58p-2
src/math/special/fma.h:158: RN fmal(0x1.bd97819bacfd8p-1022,0x1.2c25f267ba4eep-2,0x1.804b5204a3f3ap-1022) want 0x1.01739c190fd97p-1021 got 0x1.b9e166e6b4p-1022 ulperr -642314707927040.000 = -0x1.241746p+49 + 0x1.ffc8c4p-2
src/math/special/fma.h:159: RN fmal(0x1.596577053873dp-1022,0x1.3562ab2d29949p-2,0x1.b3f1ee75db6e7p-1022) want 0x1.0e268a498009bp-1021 got 0x1.e8136bc1594p-1022 ulperr -459377991483392.000 = -0x1.a1cd46p+48 + 0x1.ffc2fep-2
src/math/special/fma.h:160: RN fmal(0x1.3c7a68cf0f7b3p-1022,0x1.9a55c15b167bdp-2,0x1.7635b7b163c07p-1022) want 0x1.f5073b93b7b81p-1022 got 0x1.75f9a972138p-1023 ulperr -5524660993130496.000 = -0x1.3a0a66p+52 + 0x1.ffd14p-2
src/math/special/fma.h:161: RN fmal(0x1.5825164bc4068p-1022,0x1.dcbb6e5ff3245p-2,0x1.52fc3be0e84dap-1022) want 0x1.f334771c2dcfbp-1022 got 0x1.2b86ba6b02p-1022 ulperr -3512784226615296.000 = -0x1.8f5b7ap+51 + 0x1.ffb51ep-2
src/math/special/fma.h:162: RN fmal(0x1.139ea77b760ecp+1022,0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023) want 0x1.b93aac527380fp+1023 got 0x1.c3ec4f2eep+1022 ulperr -3787028625883136.000 = -0x1.ae890ap+51 + 0x1.ffc782p-2
src/math/special/fma.h:163: RN fmal(0x1.0e6f9c1657d7cp+1022,0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023) want 0x1.c0538372b4bbfp+1022 got 0x1.54dede6dep+1021 ulperr -4888708943708160.000 = -0x1.15e414p+52 + 0x1.ffd564p-2
src/math/special/fma.h:164: RN fmal(0x1.1182524fa411cp+1022,0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023) want 0x1.bf78969300a77p+1023 got 0x1.8651491efp+1022 ulperr -4438724683235328.000 = -0x1.f89fe4p+51 + 0x1.ffcf36p-2
src/math/special/fma.h:165: RN fmal(0x1.1cbf4fb8ec82p+1022,0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023) want 0x1.72af6bbad4a29p+1023 got 0x1.a68c1c1ecp+1023 ulperr 912367152005120.000 = 0x1.9ee584p+49 + 0x1.ff965cp-2
src/math/special/fma.h:166: RN fmal(0x1.311e25c6db346p+1022,0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023) want 0x1.a61d29434fc13p+1023 got -0x1.791d1989p+1017 ulperr -7529566759288832.000 = -0x1.ac019ep+52 + -0x1.fffe86p-2
src/math/special/fma.h:167: RN fmal(0x1.1201cf577052fp+1022,0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023) want 0x1.8c8d801df34d9p+1023 got -0x1.3048609fd8p+1022 ulperr -inf = -inf + -0x1.ffd9f6p-2
src/math/special/fma.h:168: RN fmal(0x1.3e52335b76e81p+1022,0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023) want 0x1.ed6576837f653p+1023 got -0x1.e498d5441cp+1022 ulperr -inf = -inf + -0x1.ffc36cp-2
src/math/special/fma.h:169: RN fmal(0x1.18566b4f843cbp+1022,0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023) want 0x1.9a433b9796559p+1022 got 0x1.a048d2820cp+1022 ulperr 105937222238208.000 = 0x1.8165bap+46 + -0x1.ff6812p-2
src/math/special/fma.h:170: RN fmal(0x1.3fbe544fe1be8p+1022,0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023) want 0x1.efdb644b613e5p+1023 got -0x1.e14223656p+1022 ulperr -inf = -inf + -0x1.ffc3d8p-2
src/math/special/fma.h:171: RN fmal(0x1.263a0d3bc2e4p+1022,0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023) want 0x1.899878afc0fa3p+1023 got 0x1.a13620448p+1023 ulperr 415454233362432.000 = 0x1.79da7ap+48 + 0x1.ff97b2p-2
src/math/special/fma.h:172: RN fmal(0x1.5bf4aec8efc8ep+1022,0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023) want 0x1.d8f5e18b868bdp+1023 got 0x1.3e5679fdf8p+1022 ulperr -5520279589617664.000 = -0x1.39caa4p+52 + 0x1.ffd836p-2
src/math/special/fma.h:173: RN fmal(0x1.1e57f1af78279p+1022,0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023) want 0x1.692cb7ec68a93p+1023 got -0x1.c0a1f29b28p+1021 ulperr -8326959113175040.000 = -0x1.d95534p+52 + -0x1.ffe3f6p-2
src/math/special/fma.h:174: RN fmal(0x1.1d9824cd73511p+1022,0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023) want 0x1.2736a6b6e35f3p+1023 got 0x1.bc6f9c9778p+1021 ulperr -3238800478175232.000 = -0x1.70358p+51 + 0x1.ffe43ap-2
src/math/special/fma.h:175: RN fmal(0x1.1ff85a24aff31p+1022,0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023) want 0x1.8bc7ce2087081p+1023 got 0x1.84b319bafap+1023 ulperr -124568119279616.000 = -0x1.c52d1ap+46 + 0x1.ff9ed4p-2
src/math/special/fma.h:176: RN fmal(0x1.0449b3965227ep+1022,0x1.4430d4441f9f2p+2,-0x1.a6966c96307ep+1023) want 0x1.d94eda8c81771p+1022 got -0x1.992ed6b72p+1021 ulperr -11925733685329920.000 = -0x1.52f322p+53 + -0x1.ffccdap-2
src/math/special/fma.h:177: RN fmal(0x1.3c91fa00fd0c7p+1022,0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023) want 0x1.95eae0d2644d3p+1022 got 0x1.9985d8eaap+1019 ulperr -6240425882943488.000 = -0x1.62ba26p+52 + -0x1.ff0cccp-2
src/math/special/fma.h:178: RN fmal(0x1.0979b36d46534p+1022,0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023) want 0x1.2420f34e2aa3dp+1022 got -0x1.335a0fe68p+1019 ulperr -5815056616914944.000 = -0x1.4a8c36p+52 + 0x1.ff099ap-2
src/math/special/fma.h:179: RN fmal(0x1.4c89df582a599p+1022,0x1.55f3dc473ea8fp+2,-0x1.e35037292ddfp+1023) want 0x1.95109fdbc3771p+1023 got -0x1.afa3b29624p+1022 ulperr -inf = -inf + -0x1.ffca0cp-2
src/math/special/fma.h:180: RN fmal(0x1.35ee0a669c4fbp+1022,0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023) want 0x1.7a8ed977d817bp+1023 got 0x1.47da9ddfb8p+1022 ulperr -3775828961787904.000 = -0x1.ad4316p+51 + 0x1.ffd704p-2
src/math/special/fma.h:181: RN fmal(0x1.117cc860f61bcp+1022,0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023) want 0x1.b960b7088e74fp+1022 got 0x1.ddfba372cp+1022 ulperr 643964982001664.000 = 0x1.24d764p+49 + -0x1.ff777ep-2
src/math/special/fma.h:182: RN fmal(0x1.1e78a37be320fp+1022,0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023) want 0x1.24326b9956dfbp+1023 got -0x1.d2881b3596p+1023 ulperr -inf = -inf + -0x1.ff8b5ep-2
src/math/special/fma.h:183: RN fmal(0x1.0c79b5c8331c2p+1022,0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023) want 0x1.9c135bb2cff85p+1021 got -0x1.cc298bacp+1019 ulperr -9273126449840128.000 = -0x1.078eep+53 + 0x1.fe1cc2p-2
src/math/special/fma.h:184: RN fmal(0x1.556c4c072f272p+1022,0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023) want 0x1.6fcc9f756df6dp+1023 got -0x1.f6f4c76598p+1022 ulperr -inf = -inf + -0x1.ffc122p-2
src/math/special/fma.h:185: RN fmal(-0x1.e8349b891b2fp-1,0x1.4a6dec9b72578p-1,0x1.3b6151ce809ddp-1) want 0x1.3a62fe330b355p-11 got -0x1.d97121p-11 ulperr -13859627535958016.000 = -0x1.89ea1p+53 + -0x1.ff89a4p-2
src/math/special/fma.h:186: RN fmal(0x1.2996632ac7d74p-1,-0x1.bb3c58b654d94p-1,0x1.01a6660e64a31p-1) want 0x1.ed045bb956a8ep-15 got -0x1.070d62p-15 ulperr -13300911346548736.000 = -0x1.7a08dep+53 + -0x1.eabe3cp-2
src/math/special/fma.h:187: RN fmal(-0x1.c602e894c1df8p-1,0x1.a1c980e7d3f94p-1,0x1.7271244b43386p-1) want -0x1.ba251fe026e5bp-15 got -0x1.af2b6cp-15 ulperr 193081294979072.000 = 0x1.5f367cp+47 + 0x1.fa6bcap-2
src/math/special/fma.h:188: RN fmal(-0x1.c84baf47e85cp-1,0x1.770b5149ef2ep-1,0x1.4d80f139320bap-1) want -0x1.79277433b9e23p-10 got 0x1.d4b6fp-11 ulperr 10757822555881472.000 = 0x1.31c176p+53 + 0x1.ffc56ap-2
src/math/special/fma.h:189: RN fmal(-0x1.36e667dcf9c6p-1,0x1.2591f82556b88p-1,0x1.2452a0f795f95p-1) want 0x1.c83c8e63c159fp-3 got -0x1.221cccp-12 ulperr -8036166204915712.000 = -0x1.c8cd9cp+52 + -0x1.ffffdcp-2
src/math/special/fma.h:190: RN fmal(0x1.88b2cede61e4cp-1,-0x1.71dcab5ad9e9p-3,0x1.32b27fea2ae97p-3) want 0x1.70461909b25e2p-7 got -0x1.affe57fffffffp-17 ulperr -6486162973655040.000 = -0x1.70b218p+52 + -0x1.ffffe6p-2
src/math/special/fma.h:191: RN fmal(0x1.8d1e44002c98p-3,-0x1.af9fdfb347834p-1,0x1.e280942fb4146p-4) want -0x1.761ac23896dfdp-5 got 0x1.0bec48p-14 ulperr 6590522089013248.000 = 0x1.76a0b8p+52 + 0x1.ffffdep-2
src/math/special/fma.h:192: RN fmal(0x1.236e8cb9492c8p-1,-0x1.d37443a57f1c4p-1,0x1.ca10df801aabcp-4) want -0x1.a1a2cdf0138f9p-2 got 0x1.f090cab7p-5 ulperr 8439088898113536.000 = 0x1.dfb4e8p+52 + 0x1.fff07cp-2
src/math/special/fma.h:193: RN fmal(-0x1.6ad943e610fb8p-1,-0x1.cef92a7bb18bcp-1,0x1.f28587d8fb0ep-4) want 0x1.866b5204b9aecp-1 got -0x1.8c9eb9a7p-5 ulperr -7304415983697920.000 = -0x1.9f353ep+52 + -0x1.fff9cep-2
src/math/special/fma.h:194: RN fmal(-0x1.60a8569a5d894p-1,-0x1.ca07e29dd171cp-1,0x1.b6c475ace09ecp-4) want 0x1.72549291e2f7ap-1 got -0x1.b6fd181e8p-5 ulperr -6997593720619008.000 = -0x1.8dc464p+52 + -0x1.fff924p-2
src/math/special/fma.h:195: RN fmal(0x1.d1962720d678cp-1,-0x1.4548ee45c4084p-1,0x1.f416ab193d75cp-4) want -0x1.d2929879dc853p-2 got 0x1.fc38e6f4p-8 ulperr 8347731722502144.000 = 0x1.da837cp+52 + 0x1.fffe04p-2
src/math/special/fma.h:196: RN fmal(-0x1.9ddcb295a7d64p-1,0x1.67fb3a2068a78p-1,0x1.da9cd4597fe0ap-4) want -0x1.cf4f6eb4fc5d8p-2 got 0x1.59da5512p-6 ulperr 8530909930192896.000 = 0x1.e4ed14p+52 + 0x1.fffa98p-2
src/math/special/fma.h:197: RN fmal(0x1.c00d16ed45b88p+0,0x1.c787eddda3664p+0,0x1.1e3e6f0cc1802p-5) want 0x1.931b8f379dcc3p+1 got -0x1.63fb63b8p-6 ulperr -7140470639558656.000 = -0x1.95e386p+52 + -0x1.ffff4ep-2
src/math/special/fma.h:198: RN fmal(0x1.19c2a2372c184p+0,-0x1.cb506961c19fp+0,0x1.db1abf3f7ba3ap-6) want -0x1.f21c0eab0bc18p+0 got 0x1.a29607ffffff8p-13 ulperr 8763735812341760.000 = 0x1.f22924p+52 + 0x1.fffffcp-2
src/math/special/fma.h:199: RN fmal(-0x1.3a263218ccd1cp+0,-0x1.e818d390df27cp+0,0x1.2a81ed71785f5p-5) want 0x1.3025ab0f63925p+1 got -0x1.bfdf0b9cp-6 ulperr -5412168283455488.000 = -0x1.33a56ap+52 + -0x1.ffff2p-2
src/math/special/fma.h:200: RN fmal(0x1.b0b041fbaca58p+0,-0x1.9d5f76d178e6p+0,0x1.0215c7bb84cf9p-6) want -0x1.5b52aec7ef4p+1 got 0x1.6be7a78p-7 ulperr 6135177709355008.000 = 0x1.5cbe96p+52 + 0x1.ffffa6p-2
src/math/special/fma.h:201: RN fmal(-0x1.377549d9a87f4p+0,-0x1.a13d4a03dd6d8p+0,0x1.f190388bc5cc6p-7) want 0x1.ff83bebbd6fe4p+0 got -0x1.e5a6a44p-9 ulperr -9015347881443328.000 = -0x1.003b4ap+53 + -0x1.ffffc4p-2
src/math/special/fma.h:202: RN fmal(0x1.6a726c0762ac8p-1,-0x1.d32f2d30e483cp+0,0x1.f953eb70fbde6p-7) want -0x1.46c61b3070332p+0 got 0x1.e556e47fffffep-11 ulperr 5752835425697792.000 = 0x1.4702c6p+52 + 0x1.fffffp-2
src/math/special/fma.h:203: RN fmal(0x1.94cf2509d40cp-1,0x1.721976af6dfbp+0,0x1.f51a456921c3ep-7) want 0x1.28880842acc6p+0 got -0x1.effe1ep-8 ulperr -5250719389057024.000 = -0x1.2a7806p+52 + -0x1.ffff84p-2
src/math/special/fma.h:204: RN fmal(0x1.b128eb0ad8728p-1,0x1.7682566a54268p+0,0x1.bd4122a074cafp-8) want 0x1.3e9469530e762p+0 got -0x1.6fe0c7cp-9 ulperr -5617154187591680.000 = -0x1.3f4c5ap+52 + -0x1.ffffd2p-2
src/math/special/fma.h:205: RN fmal(0x1.c4ae75976e35cp+0,-0x1.11c329dd1160cp+0,0x1.9993f5e13c9bdp-8) want -0x1.e27d925b07cf1p+0 got 0x1.198edf6p-9 ulperr 8497737213411328.000 = 0x1.e30a5ap+52 + 0x1.ffffdcp-2
src/math/special/fma.h:206: RN fmal(-0x1.85f81f88fa3c4p+0,-0x1.17648a494fa18p-1,0x1.37d305113b48p-10) want 0x1.aa367b7490e57p-1 got -0x1.7a59ecffffffep-12 ulperr -7501265072291840.000 = -0x1.aa65c6p+52 + -0x1.fffff4p-2
src/math/special/fma.h:207: RN fmal(-0x1.311f2b4319efcp+0,0x1.abbb5272e3d18p-1,0x1.35841b7bdbcfep-10) want -0x1.fd337f24b39ep-1 got 0x1.4cbc317ffffffp-11 ulperr 8963677814259712.000 = 0x1.fd86aep+52 + 0x1.ffffecp-2
src/math/special/fma.h:208: RN fmal(0x1.ab94369a9a0dp-1,0x1.9d1e0e0aa3bacp+0,0x1.0a63ca87cfa78p-11) want 0x1.592173ee296b6p+0 got -0x1.fd8043ffffff8p-13 ulperr -6072697209487360.000 = -0x1.59316p+52 + -0x1.fffffcp-2
src/math/special/fma.h:250: RZ fmal(0x1p+0,0x1p+0,-0x1p-1074) want 0x1.fffffffffffffp-1 got -0x1.fffffp-43 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p+0
src/math/special/fma.h:251: bad fp exception: RZ fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022)=0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:251: RZ fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.fffffffffffffp-1022 got 0x0p+0 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x0p+0
src/math/special/fma.h:252: bad fp exception: RZ fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022)=0x1.ffffffffffffep-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:252: RZ fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.ffffffffffffep-1022 got -0x0p+0 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p+0
src/math/special/fma.h:253: bad fp exception: RZ fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:253: RZ fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.fffffffffffffp-1022 got -0x0p+0 ulperr 9007198717870080.000 = 0x1.fffffep+52 + 0x0p+0
src/math/special/fma.h:254: bad fp exception: RZ fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.ffffffffffffep-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:254: RZ fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.ffffffffffffep-1022 got 0x0p+0 ulperr 9007198717870080.000 = 0x1.fffffcp+52 + 0x1p+0
src/math/special/fma.h:255: RZ fmal(0x1p-1074,-0x1p-1074,0x1p-1074) want 0x0p+0 got -0x0p+0 ulperr inf = inf + -0x1p+0
src/math/special/fma.h:256: RZ fmal(0x1p-1074,-0x1p-1074,-0x1p-1074) want -0x1p-1074 got -0x0p+0 ulperr 1.000 = 0x1p+0 + 0x0p+0
src/math/special/fma.h:257: RZ fmal(0x1.0000000000001p+0,0x1p+0,0x1p+53) want 0x1p+53 got 0x1.000008p+12 ulperr -4503599358935040.000 = -0x1.fffffcp+51 + -0x1p-1
src/math/special/fma.h:258: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p+53) want 0x1p+53 got 0x1.ffc02p+10 ulperr -4503599358935040.000 = -0x1.fffffcp+51 + -0x1p-1
src/math/special/fma.h:259: RZ fmal(0x1p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp+53) want 0x1.fffffffffffffp+53 got -0x1.ffffep+10 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:260: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep+53) want 0x1.ffffffffffffep+53 got 0x1.ffc02p+10 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:261: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p-52) want 0x1.0000000000001p+0 got -0x1.fffffp-42 ulperr -4503599627370496.000 = -0x1.fffffep+51 + -0x1p-1
src/math/special/fma.h:262: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp-53) want 0x1.0000000000001p+0 got -0x1.fffff8p-41 ulperr -4503599627370496.000 = -0x1.fffffep+51 + -0x1p-1
src/math/special/fma.h:263: RZ fmal(0x1.0000000000005p+0,0x1.ffffffffffffbp-1,0x1p-52) want 0x1.0000000000003p+0 got -0x1.8fffff8p-37 ulperr -4503599627370496.000 = -0x1.fffffep+51 + -0x1p-1
src/math/special/fma.h:264: RZ fmal(0x1.0000000000006p+0,0x1.ffffffffffffdp-1,0x1p-52) want 0x1.0000000000005p+0 got -0x1.1fffff8p-37 ulperr -4503599627370496.000 = -0x1.fffffep+51 + -0x1p-1
src/math/special/fma.h:283: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff4p+0 got 0x1.6800008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:284: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1p+0) want 0x1.ffffffffffff8p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:285: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffff6p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:286: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffff4p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:287: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffff6p+0 got 0x1.f800008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:288: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffff4p+0 got 0x1.f800008p-37 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:289: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffff6p+0 got 0x1.2000004p-36 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:290: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffff4p+0 got 0x1.2000004p-36 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:291: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.fffffffffffffp-1) want 0x1.ffffffffffff6p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:292: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffff4p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:293: RZ fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff2p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1p-1
src/math/special/fma.h:294: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep-1) want 0x1.fffffffffffffp+0 got -0x1.fffffp-42 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:295: RZ fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffp-42 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:296: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.fffffffffffffp-1) want 0x1.fffffffffffffp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:297: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:298: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:299: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1p+0) want 0x1.fffffffffffffp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:300: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:301: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:302: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:303: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:304: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffffdp+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:305: RZ fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffbp+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1.fffffep+52 + -0x1p-1
src/math/special/fma.h:306: RZ fmal(0x1.5872449b765b9p+0,0x1.c9acf91f8de2bp+0,0x1.9265607e4d168p+0) want 0x1.fd190c77c2a67p+1 got -0x1.b3fc37becffffp-4 ulperr -9195828849672192.000 = -0x1.055c74p+53 + -0x1.fffc98p-2
src/math/special/fma.h:307: RZ fmal(0x1.81d010b146d0ep+0,0x1.2d3c680dc9071p+0,0x1.a80b69538754cp+0) want 0x1.b7040b44973a6p+1 got 0x1.4d0cb20197p+1 ulperr -1864177136173056.000 = -0x1.a7dd62p+50 + -0x1.0029a2p-1
src/math/special/fma.h:308: RZ fmal(0x1.6a44f2252b6a2p+0,0x1.da452a378b832p+0,0x1.1fe2ce329104p+0) want 0x1.df842b6f48b12p+1 got 0x1.12e95c1ba4p+0 ulperr -6017591705337856.000 = -0x1.560f7ap+52 + -0x1.00112ep-1
src/math/special/fma.h:309: RZ fmal(0x1.096b1d26463eep+0,0x1.d846d3e34333p+0,0x1.721e3480922b8p+0) want 0x1.ade2909c0269fp+1 got -0x1.a139d9b2bffffp-1 ulperr -9397595675820032.000 = -0x1.0b188p+53 + -0x1.ffe5ecp-2
src/math/special/fma.h:310: RZ fmal(0x1.99bd3434c454bp+0,0x1.03cb8e4115bdep+0,0x1.109f107188b08p+0) want 0x1.5837a47d37faep+1 got 0x1.cfdec0c00ap+0 ulperr -1975290892910592.000 = -0x1.c1210ep+50 + -0x1.001cfep-1
src/math/special/fma.h:311: RZ fmal(0x1.ba930a0a78ed2p+0,0x1.8c24e8d67f636p+0,0x1.ac49dbfbf8affp+0) want 0x1.164947ae6a5d9p+2 got -0x1.33e3b04ecffffp-2 ulperr -5234191281160192.000 = -0x1.29878p+52 + -0x1.fffb3p-2
src/math/special/fma.h:312: RZ fmal(0x1.be224ad773191p+0,0x1.d96b77169731fp+0,0x1.662cfb75d8edep+0) want 0x1.27cd67e720f78p+2 got 0x1.e4711611c78p+1 ulperr -942615600037888.000 = -0x1.aca6e4p+49 + -0x1.001e48p-1
src/math/special/fma.h:313: RZ fmal(0x1.59e7a1b0bdb3cp+0,0x1.2decba4d46421p+0,0x1.88f4062e96df5p+0) want 0x1.90749e4794f79p+1 got -0x1.b3c84a9a87fffp-1 ulperr -8961479327875072.000 = -0x1.fd66aep+52 + -0x1.ffe4c4p-2
src/math/special/fma.h:314: RZ fmal(0x1.22edf4b4da9a7p+0,0x1.dfa8d65f506cdp+0,0x1.2799208da2fbap+0) want 0x1.a45a1e99ed7a8p+1 got 0x1.a0bdfb8976p-1 ulperr -5562059420860416.000 = -0x1.3c2a9cp+52 + -0x1.000d06p-1
src/math/special/fma.h:315: RZ fmal(0x1.ad5b991a2a279p+0,0x1.f02fd26706024p+0,0x1.831cdd5c8797cp+0) want 0x1.30d3a2ac90a6p+2 got 0x1.c7c15e1c82p+1 ulperr -1353701616779264.000 = -0x1.33cbccp+50 + -0x1.001c7cp-1
src/math/special/fma.h:316: RZ fmal(0x1.531f9620e764ap+0,0x1.cad61b54d4425p+0,0x1.df817cae8a9afp+0) want 0x1.0fd4e7f8671dcp+2 got 0x1.8e74e26059p+1 ulperr -1277252004216832.000 = -0x1.2269d8p+50 + -0x1.0018e8p-1
src/math/special/fma.h:317: RZ fmal(0x1.629a5ad79494fp+0,0x1.049e58693f4c4p+0,0x1.45b0109e4d00cp+0) want 0x1.5758154e14965p+1 got -0x1.01173c9c1ffffp-3 ulperr -6322846842224640.000 = -0x1.676986p+52 + -0x1.fffbfcp-2
src/math/special/fma.h:318: RZ fmal(0x1.2f52b53f9240ap+0,0x1.1d5c686dbb0dap+0,0x1.6da3e392a4fd4p+0) want 0x1.5fe03a6795912p+1 got 0x1.5bdb7d9084p+0 ulperr -3130480060792832.000 = -0x1.63e4f4p+51 + -0x1.0015bep-1
src/math/special/fma.h:319: RZ fmal(0x1.058667552b49ep+0,0x1.23307bacc1c42p+0,0x1.5b059b47cd8f5p+0) want 0x1.423f752486d13p+1 got -0x1.4bfb042743fffp+0 ulperr -8589175993401344.000 = -0x1.e83cf4p+52 + -0x1.ffd68p-2
src/math/special/fma.h:320: RZ fmal(0x1.a717d95337ed8p+0,0x1.2b1c37846aaadp+0,0x1.be65672f885b1p+0) want 0x1.d65e72303c075p+1 got -0x1.7e0573ec03fffp+1 ulperr -14995406941323264.000 = -0x1.aa31fp+53 + -0x1.ffa07ep-2
src/math/special/fma.h:321: RZ fmal(0x1.deb79287b3d32p+0,0x1.62776b829babap+0,0x1.67daf18bd2eb1p+0) want 0x1.ff5a0d45c69d6p+1 got 0x1.ad881652ap-3 ulperr -8523519902089216.000 = -0x1.e48188p+52 + -0x1.00035cp-1
src/math/special/fma.h:322: RZ fmal(0x1.fbf12d3a6de91p+0,0x1.879fe6124f11p+0,0x1.9f3f1247a8641p+0) want 0x1.2a126c6980018p+2 got 0x1.45e3d61a84p+2 ulperr 489379747332096.000 = 0x1.bd169ap+48 + -0x1.0028bcp-1
src/math/special/fma.h:323: RZ fmal(0x1.c589628460e01p+0,0x1.e1bec1c797533p+0,0x1.349f30cdb84bbp+0) want 0x1.2286118b6f6e5p+2 got -0x1.8e9d95e0667ffp+1 ulperr -8617206560587776.000 = -0x1.e9d4dap+52 + -0x1.ffce2cp-2
src/math/special/fma.h:324: RZ fmal(0x1.46fd6c2c924ebp+0,0x1.65e2f02e730a1p+0,0x1.37739d2751098p+0) want 0x1.804a71c1f1272p+1 got 0x1.855d7947cbp+0 ulperr -3335623268106240.000 = -0x1.7b3768p+51 + -0x1.001856p-1
src/math/special/fma.h:325: RZ fmal(0x1.f99e595ae11fdp+0,0x1.bd33d9a1d81bp+0,0x1.932a2a2e244c1p+0) want 0x1.409e34f8f2f89p+2 got -0x1.7a49668943fffp+2 ulperr -12295260860317696.000 = -0x1.5d73cap+53 + -0x1.ffa16ep-2
src/math/special/fma.h:326: RZ fmal(0x1.59ea1e56bfe55p+0,0x1.6f46b7d412a44p+0,0x1.80f2bc9a32cc3p+0) want 0x1.b89c7640e32ffp+1 got -0x1.ca180bfb5ffffp-3 ulperr -8254993178034176.000 = -0x1.d53df4p+52 + -0x1.fff8d8p-2
src/math/special/fma.h:327: RZ fmal(0x1.61490fcb44129p+0,0x1.0038ec4fc35c2p+0,0x1.df7436ed7a7b7p+0) want 0x1.a085ea68d05cfp+1 got -0x1.5ed2c690f6fffp+1 ulperr -13499301254660096.000 = -0x1.7fac56p+53 + -0x1.ffa84cp-2
src/math/special/fma.h:328: RZ fmal(0x1.d41b98788502bp+0,0x1.1a7b77843aca6p+0,0x1.05be891837d36p+0) want 0x1.8523596ceced9p+1 got -0x1.48c8fc403bfffp-1 ulperr -8291801584631808.000 = -0x1.d75596p+52 + -0x1.ffeb74p-2
src/math/special/fma.h:329: RZ fmal(0x1.3153cf6f69af9p+0,0x1.aaa947e38e57ap+0,0x1.8519f9b590645p+0) want 0x1.c0fcab7b46368p+1 got 0x1.25f4f4bd5p-3 ulperr -7575453653008384.000 = -0x1.ae9d5ap+52 + -0x1.00024cp-1
src/math/special/fma.h:330: RZ fmal(0x1.c25a1f73581aap+0,0x1.0a51ffca372ap+0,0x1.0c77e3ebac5f3p+0) want 0x1.707ce48c7d72dp+1 got -0x1.3261c9a0dffffp+1 ulperr -11872435288670208.000 = -0x1.516f54p+53 + -0x1.ffb368p-2
src/math/special/fma.h:331: RZ fmal(0x1.829c2cde44b7p+0,0x1.f692e86d8cb36p+0,0x1.455e72d264bfp+0) want 0x1.0f16a3b8b3f97p+2 got -0x1.684386465ffffp+0 ulperr -6353494655107072.000 = -0x1.692782p+52 + -0x1.ffe97cp-2
src/math/special/fma.h:332: RZ fmal(0x1.94729588dcc69p+0,0x1.c3bb794c6edf8p+0,0x1.9da4e94d262d2p+0) want 0x1.19d4bd84d9fd2p+2 got 0x1.e1b9a2757p-1 ulperr -3898698849320960.000 = -0x1.bb3b1p+51 + -0x1.000786p-1
src/math/special/fma.h:333: RZ fmal(0x1.e6a5e7e39c3d5p+0,0x1.1b69af2bdd978p+0,0x1.e7ef1eafa119cp+0) want 0x1.00ac5b44c9f31p+2 got -0x1.6777d5d393fffp+1 ulperr -7677358731427840.000 = -0x1.b46844p+52 + -0x1.ffd312p-2
src/math/special/fma.h:334: bad fp exception: RZ fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022)=0x1.b594d0e4368efp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:334: RZ fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022) want 0x1.b594d0e4368efp-1022 got -0x1.9dedc9560fffep-1023 ulperr -11338968138252288.000 = -0x1.4245d8p+53 + -0x1.ffcc42p-2
src/math/special/fma.h:335: RZ fmal(0x1.022db53c98d14p-1022,0x1.21157eef74848p-2,0x1.2f880432b1bc1p-1022) want 0x1.786ad60a02b3dp-1022 got -0x1.150255ac97fffp-1022 ulperr -11495198647386112.000 = -0x1.46b692p+53 + -0x1.ffbacp-2
src/math/special/fma.h:336: bad fp exception: RZ fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022)=0x1.cbb085199a3f5p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:336: RZ fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022) want 0x1.cbb085199a3f5p-1022 got -0x1.6ed115da2f7fep-1023 ulperr -11313497908445184.000 = -0x1.418c86p+53 + -0x1.ffd226p-2
src/math/special/fma.h:337: RZ fmal(0x1.adbc3a9d816dep-1022,0x1.e039d4431e3cdp-2,0x1.93ceef6fe18a2p-1022) want 0x1.2eabb7dc0e2fp-1021 got 0x1.ef7b6794e3p-1023 ulperr -3145487213395968.000 = -0x1.6599b8p+51 + -0x1.000f7cp-1
src/math/special/fma.h:338: RZ fmal(0x1.645aa5c2df3afp-1022,0x1.649edfcad854fp-2,0x1.8b43e0bbaeb01p-1022) want 0x1.03af571d2b504p-1021 got 0x1.0ce86163c02p-1021 ulperr 162249436037120.000 = 0x1.272148p+47 + -0x1.00219ep-1
src/math/special/fma.h:339: bad fp exception: RZ fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022)=0x1.ad9ce7fcefa3fp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:339: RZ fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022) want 0x1.ad9ce7fcefa3fp-1022 got -0x1.12bc4931e5ff8p-1025 ulperr -8161979755659264.000 = -0x1.cff46ep+52 + -0x1.fff76ap-2
src/math/special/fma.h:340: RZ fmal(0x1.8ee3feb00c3e7p-1022,0x1.53bd9353313bcp-2,0x1.5501b57dc3b6fp-1022) want 0x1.d9598906f0bb3p-1022 got -0x1.4660b83f56fffp-1022 ulperr -14068955652030464.000 = -0x1.8fdd1ep+53 + -0x1.ffae68p-2
src/math/special/fma.h:341: RZ fmal(0x1.161225cfa61e2p-1022,0x1.b6dd69a0af5bp-2,0x1.924ffc3ead5c3p-1022) want 0x1.04be6fc25367bp-1021 got -0x1.f3ab56daa7fffp-1022 ulperr -8982192344530944.000 = -0x1.fe9418p+52 + -0x1.ffc18ap-2
src/math/special/fma.h:342: bad fp exception: RZ fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022)=0x1.70b6c3169f043p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:342: RZ fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022) want 0x1.70b6c3169f043p-1022 got -0x1.a779baefbe7fep-1023 ulperr -10211413595258880.000 = -0x1.2239cep+53 + -0x1.ffcb1p-2
src/math/special/fma.h:343: RZ fmal(0x1.ce0e2ea55040ep-1022,0x1.ce5a55fa3828dp-2,0x1.f2f444d50ce59p-1022) want 0x1.61ca36f5a8a79p-1021 got -0x1.173f0cea127ffp-1022 ulperr -8680213730820096.000 = -0x1.ed69bap+52 + -0x1.ffdd18p-2
src/math/special/fma.h:344: bad fp exception: RZ fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022)=0x1.1440cf1c105ebp-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:344: RZ fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022) want 0x1.1440cf1c105ebp-1021 got -0x1.f88fda5ffffp-1030 ulperr -4877233327964160.000 = -0x1.153d14p+52 + -0x1.ffffcp-2
src/math/special/fma.h:345: bad fp exception: RZ fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022)=0x1.1186e1f77012dp-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:345: RZ fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022) want 0x1.1186e1f77012dp-1021 got -0x1.2ffba526fbff8p-1025 ulperr -5146168610783232.000 = -0x1.24869ap+52 + -0x1.fffb4p-2
src/math/special/fma.h:346: bad fp exception: RZ fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022)=0x1.8d86310bad175p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:346: RZ fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022) want 0x1.8d86310bad175p-1022 got -0x1.1b755c367f7fep-1023 ulperr -9486645380251648.000 = -0x1.0da06cp+53 + -0x1.ffdc92p-2
src/math/special/fma.h:347: RZ fmal(0x1.fb3391a4b1d23p-1022,0x1.4d8705b057caep-2,0x1.d026cb6dae73bp-1022) want 0x1.3aad18b424c67p-1021 got -0x1.0a1784c7c6bffp-1021 ulperr -10216978799132672.000 = -0x1.22624cp+53 + -0x1.ffbd7ap-2
src/math/special/fma.h:348: bad fp exception: RZ fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022)=0x1.c0048fd33a417p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:348: RZ fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022) want 0x1.c0048fd33a417p-1022 got -0x1.d026e457f0ffcp-1024 ulperr -9922974329077760.000 = -0x1.1a0722p+53 + -0x1.ffe2fep-2
src/math/special/fma.h:349: RZ fmal(0x1.aa9eff070281cp-1022,0x1.fab05661b48ebp-2,0x1.cbe2af6c69c6ep-1022) want 0x1.4f7ddbe122764p-1021 got 0x1.9e529858dap-1023 ulperr -4079820841418752.000 = -0x1.cfd268p+51 + -0x1.000cf2p-1
src/math/special/fma.h:350: bad fp exception: RZ fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022)=0x1.e0e762ee2e7c5p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:350: RZ fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022) want 0x1.e0e762ee2e7c5p-1022 got -0x1.e2fe0f96ebffep-1023 ulperr -12708595627982848.000 = -0x1.693332p+53 + -0x1.ffc3ap-2
src/math/special/fma.h:351: RZ fmal(0x1.4dab43918a9a8p-1022,0x1.ed667442b4751p-2,0x1.3f25f82e02e3ep-1022) want 0x1.dfec0ee732dcap-1022 got 0x1.6a41c4d18ap-1022 ulperr -2069987942465536.000 = -0x1.d6a926p+50 + -0x1.002d48p-1
src/math/special/fma.h:352: RZ fmal(0x1.7943735951931p-1022,0x1.fa6a357c5c9ddp-2,0x1.0bed44b0b71b4p-1022) want 0x1.c6803a6059abep-1022 got 0x1.0e970cce134p-1022 ulperr -3235393763803136.000 = -0x1.6fd258p+51 + -0x1.0021d2p-1
src/math/special/fma.h:353: bad fp exception: RZ fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022)=0x1.8640492c45959p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:353: RZ fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022) want 0x1.8640492c45959p-1022 got -0x1.3271a1b37ffep-1027 ulperr -7033839486500864.000 = -0x1.8fd3d4p+52 + -0x1.fffd9cp-2
src/math/special/fma.h:354: RZ fmal(0x1.f52172c56bdf5p-1022,0x1.672b2de422734p-2,0x1.7bc5d708e5a34p-1022) want 0x1.15c5b95145cc6p-1021 got 0x1.3cf4f71d188p-1021 ulperr 689341647028224.000 = 0x1.3979eep+49 + -0x1.00279ep-1
src/math/special/fma.h:355: bad fp exception: RZ fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022)=0x1.e7fa0dd76fbefp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:355: RZ fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022) want 0x1.e7fa0dd76fbefp-1022 got -0x1.60a5d541afffcp-1024 ulperr -10135538703007744.000 = -0x1.2011bep+53 + -0x1.ffe9f6p-2
src/math/special/fma.h:356: bad fp exception: RZ fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022)=0x1.b63a7f56fce1fp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:356: RZ fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022) want 0x1.b63a7f56fce1fp-1022 got -0x1.497a9bc51fffcp-1024 ulperr -9158460486713344.000 = -0x1.044c9p+53 + -0x1.ffeb68p-2
src/math/special/fma.h:357: RZ fmal(0x1.f73d5f4e81fd8p-1022,0x1.7ccff2642124ap-2,0x1.e7d836a0c8308p-1022) want 0x1.517f1763126d3p-1021 got -0x1.06939f3371fffp-1021 ulperr -10556596895612928.000 = -0x1.2c0958p+53 + -0x1.ffbe5cp-2
src/math/special/fma.h:358: RZ fmal(0x1.b4328925969fbp-1022,0x1.8fa02832a22d5p-2,0x1.2084598e2f8c6p-1022) want 0x1.cabf43838dc51p-1022 got -0x1.7c61d65f0a3ffp-1022 ulperr -14762118276448256.000 = -0x1.a3908ap+53 + -0x1.ffa0e8p-2
src/math/special/fma.h:359: RZ fmal(0x1.66ee60a92676fp-1022,0x1.eddd2e7681ce4p-2,0x1.b81d57daeb3a7p-1022) want 0x1.329c918ffb682p-1021 got 0x1.cd379885b8p-1025 ulperr -4886854591578112.000 = -0x1.15c916p+52 + -0x1.00039ap-1
src/math/special/fma.h:360: RZ fmal(0x1.ff2737585895dp-1022,0x1.fb4bf3828ae4ap-2,0x1.4a866847740fp-1022) want 0x1.23e07e4dbbeaap-1021 got 0x1.46c53f7571p-1023 ulperr -3697601232764928.000 = -0x1.a45e5ap+51 + -0x1.000a36p-1
src/math/special/fma.h:361: RZ fmal(0x1.5e2008d269a86p-1022,0x1.507bbbe4d78eep-2,0x1.6220c6f83f636p-1022) want 0x1.d52d9874f1c74p-1022 got 0x1.eda0503c4ap-1023 ulperr -3911886277967872.000 = -0x1.bcbadep+51 + -0x1.001edap-1
src/math/special/fma.h:362: bad fp exception: RZ fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022)=0x1.9864925e2fb0fp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:362: RZ fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022) want 0x1.9864925e2fb0fp-1022 got -0x1.53ae580e8bff8p-1025 ulperr -7931489261977600.000 = -0x1.c2da5ap+52 + -0x1.fff562p-2
src/math/special/fma.h:363: RZ fmal(0x1.7b353b81e793dp-1022,0x1.82b426f874c6dp-2,0x1.d92b19d21fd5cp-1022) want 0x1.342fb0c544a78p-1021 got 0x1.2af4c8aebe4p-1022 ulperr -2792024021401600.000 = -0x1.3d6a96p+51 + -0x1.0012bp-1
src/math/special/fma.h:364: RZ fmal(0x1.5be667823370ap-1022,0x1.a8a99b163869bp-2,0x1.95456b68dc3bcp-1022) want 0x1.12c638de03c7p-1021 got 0x1.49af7fc787p-1023 ulperr -3383908095754240.000 = -0x1.80b4aep+51 + -0x1.000a4ep-1
src/math/special/fma.h:365: RZ fmal(0x1.17b0fc6c850e5p-1022,0x1.d1d0a4853c315p-2,0x1.36b79f7c0c24p-1022) want 0x1.b5f2baff5635cp-1022 got 0x1.6a19304724p-1026 ulperr -7306333686595584.000 = -0x1.9f5124p+52 + -0x1.0002d4p-1
src/math/special/fma.h:366: RZ fmal(0x1.bd97819bacfd8p-1022,0x1.2c25f267ba4eep-2,0x1.804b5204a3f3ap-1022) want 0x1.01739c190fd96p-1021 got 0x1.b9e166e6b4p-1022 ulperr -642314640818176.000 = -0x1.241742p+49 + -0x1.001b9ep-1
src/math/special/fma.h:367: RZ fmal(0x1.596577053873dp-1022,0x1.3562ab2d29949p-2,0x1.b3f1ee75db6e7p-1022) want 0x1.0e268a498009ap-1021 got 0x1.e8136bc1594p-1022 ulperr -459377991483392.000 = -0x1.a1cd44p+48 + -0x1.001e82p-1
src/math/special/fma.h:368: RZ fmal(0x1.3c7a68cf0f7b3p-1022,0x1.9a55c15b167bdp-2,0x1.7635b7b163c07p-1022) want 0x1.f5073b93b7b8p-1022 got 0x1.75f9a972138p-1023 ulperr -5524660993130496.000 = -0x1.3a0a64p+52 + -0x1.00176p-1
src/math/special/fma.h:369: RZ fmal(0x1.5825164bc4068p-1022,0x1.dcbb6e5ff3245p-2,0x1.52fc3be0e84dap-1022) want 0x1.f334771c2dcfap-1022 got 0x1.2b86ba6b02p-1022 ulperr -3512783958179840.000 = -0x1.8f5b76p+51 + -0x1.00257p-1
src/math/special/fma.h:370: RZ fmal(0x1.139ea77b760ecp+1022,0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023) want 0x1.b93aac527380ep+1023 got 0x1.c3ec4f2eep+1022 ulperr -3787028357447680.000 = -0x1.ae8906p+51 + -0x1.001c3ep-1
src/math/special/fma.h:371: RZ fmal(0x1.0e6f9c1657d7cp+1022,0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023) want 0x1.c0538372b4bbep+1022 got 0x1.54dede6dep+1021 ulperr -4888708943708160.000 = -0x1.15e412p+52 + -0x1.00154ep-1
src/math/special/fma.h:372: RZ fmal(0x1.1182524fa411cp+1022,0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023) want 0x1.bf78969300a76p+1023 got 0x1.8651491efp+1022 ulperr -4438724683235328.000 = -0x1.f89fe2p+51 + -0x1.001866p-1
src/math/special/fma.h:373: RZ fmal(0x1.1cbf4fb8ec82p+1022,0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023) want 0x1.72af6bbad4a28p+1023 got 0x1.a68c1c1ecp+1023 ulperr 912367084896256.000 = 0x1.9ee582p+49 + -0x1.0034d2p-1
src/math/special/fma.h:374: RZ fmal(0x1.311e25c6db346p+1022,0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023) want 0x1.a61d29434fc13p+1023 got -0x1.791d1988fffffp+1017 ulperr -7529566222417920.000 = -0x1.ac019ap+52 + -0x1.fffe86p-2
src/math/special/fma.h:375: RZ fmal(0x1.1201cf577052fp+1022,0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023) want 0x1.8c8d801df34d9p+1023 got -0x1.3048609fd7fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ffd9f6p-2
src/math/special/fma.h:376: RZ fmal(0x1.3e52335b76e81p+1022,0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023) want 0x1.ed6576837f653p+1023 got -0x1.e498d5441bfffp+1022 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ffc36cp-2
src/math/special/fma.h:377: RZ fmal(0x1.18566b4f843cbp+1022,0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023) want 0x1.9a433b9796559p+1022 got 0x1.a048d2820cp+1022 ulperr 105937222238208.000 = 0x1.8165bap+46 + -0x1.ff6812p-2
src/math/special/fma.h:378: RZ fmal(0x1.3fbe544fe1be8p+1022,0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023) want 0x1.efdb644b613e5p+1023 got -0x1.e14223655ffffp+1022 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ffc3d8p-2
src/math/special/fma.h:379: RZ fmal(0x1.263a0d3bc2e4p+1022,0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023) want 0x1.899878afc0fa2p+1023 got 0x1.a13620448p+1023 ulperr 415454199808000.000 = 0x1.79da78p+48 + -0x1.003426p-1
src/math/special/fma.h:380: RZ fmal(0x1.5bf4aec8efc8ep+1022,0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023) want 0x1.d8f5e18b868bcp+1023 got 0x1.3e5679fdf8p+1022 ulperr -5520279589617664.000 = -0x1.39caa2p+52 + -0x1.0013e6p-1
src/math/special/fma.h:381: RZ fmal(0x1.1e57f1af78279p+1022,0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023) want 0x1.692cb7ec68a93p+1023 got -0x1.c0a1f29b27fffp+1021 ulperr -8326959113175040.000 = -0x1.d95532p+52 + -0x1.ffe3f6p-2
src/math/special/fma.h:382: RZ fmal(0x1.1d9824cd73511p+1022,0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023) want 0x1.2736a6b6e35f2p+1023 got 0x1.bc6f9c9778p+1021 ulperr -3238800209739776.000 = -0x1.70357cp+51 + -0x1.000de4p-1
src/math/special/fma.h:383: RZ fmal(0x1.1ff85a24aff31p+1022,0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023) want 0x1.8bc7ce208708p+1023 got 0x1.84b319bafap+1023 ulperr -124568110891008.000 = -0x1.c52d16p+46 + -0x1.003096p-1
src/math/special/fma.h:384: RZ fmal(0x1.0449b3965227ep+1022,0x1.4430d4441f9f2p+2,-0x1.a6966c96307ep+1023) want 0x1.d94eda8c81771p+1022 got -0x1.992ed6b71ffffp+1021 ulperr -11925733685329920.000 = -0x1.52f32p+53 + -0x1.ffccdap-2
src/math/special/fma.h:385: RZ fmal(0x1.3c91fa00fd0c7p+1022,0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023) want 0x1.95eae0d2644d3p+1022 got 0x1.9985d8eaap+1019 ulperr -6240425346072576.000 = -0x1.62ba22p+52 + -0x1.ff0cccp-2
src/math/special/fma.h:386: RZ fmal(0x1.0979b36d46534p+1022,0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023) want 0x1.2420f34e2aa3cp+1022 got -0x1.335a0fe67ffffp+1019 ulperr -5815056080044032.000 = -0x1.4a8c32p+52 + -0x1.007b32p-1
src/math/special/fma.h:387: RZ fmal(0x1.4c89df582a599p+1022,0x1.55f3dc473ea8fp+2,-0x1.e35037292ddfp+1023) want 0x1.95109fdbc3771p+1023 got -0x1.afa3b29623fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ffca0cp-2
src/math/special/fma.h:388: RZ fmal(0x1.35ee0a669c4fbp+1022,0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023) want 0x1.7a8ed977d817ap+1023 got 0x1.47da9ddfb8p+1022 ulperr -3775828693352448.000 = -0x1.ad4312p+51 + -0x1.00147ep-1
src/math/special/fma.h:389: RZ fmal(0x1.117cc860f61bcp+1022,0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023) want 0x1.b960b7088e74fp+1022 got 0x1.ddfba372cp+1022 ulperr 643964914892800.000 = 0x1.24d762p+49 + -0x1.ff777ep-2
src/math/special/fma.h:390: RZ fmal(0x1.1e78a37be320fp+1022,0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023) want 0x1.24326b9956dfbp+1023 got -0x1.d2881b3595fffp+1023 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ff8b5ep-2
src/math/special/fma.h:391: RZ fmal(0x1.0c79b5c8331c2p+1022,0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023) want 0x1.9c135bb2cff84p+1021 got -0x1.cc298babfffffp+1019 ulperr -9273125376098304.000 = -0x1.078edcp+53 + -0x1.00f19ep-1
src/math/special/fma.h:392: RZ fmal(0x1.556c4c072f272p+1022,0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023) want 0x1.6fcc9f756df6dp+1023 got -0x1.f6f4c76597fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffcp+52 + -0x1.ffc122p-2
src/math/special/fma.h:393: RZ fmal(-0x1.e8349b891b2fp-1,0x1.4a6dec9b72578p-1,0x1.3b6151ce809ddp-1) want 0x1.3a62fe330b355p-11 got -0x1.d97120fffffffp-11 ulperr -13859626462216192.000 = -0x1.89ea0cp+53 + -0x1.ff89a4p-2
src/math/special/fma.h:394: RZ fmal(0x1.2996632ac7d74p-1,-0x1.bb3c58b654d94p-1,0x1.01a6660e64a31p-1) want 0x1.ed045bb956a8ep-15 got -0x1.070d61fffffffp-15 ulperr -13300911346548736.000 = -0x1.7a08dcp+53 + -0x1.eabe3cp-2
src/math/special/fma.h:395: RZ fmal(-0x1.c602e894c1df8p-1,0x1.a1c980e7d3f94p-1,0x1.7271244b43386p-1) want -0x1.ba251fe026e5bp-15 got -0x1.af2b6cp-15 ulperr 193081294979072.000 = 0x1.5f367ap+47 + 0x1.fa6bcap-2
src/math/special/fma.h:396: RZ fmal(-0x1.c84baf47e85cp-1,0x1.770b5149ef2ep-1,0x1.4d80f139320bap-1) want -0x1.79277433b9e23p-10 got 0x1.d4b6effffffffp-11 ulperr 10757822555881472.000 = 0x1.31c174p+53 + 0x1.ffc56ap-2
src/math/special/fma.h:397: RZ fmal(-0x1.36e667dcf9c6p-1,0x1.2591f82556b88p-1,0x1.2452a0f795f95p-1) want 0x1.c83c8e63c159fp-3 got -0x1.221ccbfffffffp-12 ulperr -8036166204915712.000 = -0x1.c8cd9ap+52 + -0x1.ffffdcp-2
src/math/special/fma.h:398: RZ fmal(0x1.88b2cede61e4cp-1,-0x1.71dcab5ad9e9p-3,0x1.32b27fea2ae97p-3) want 0x1.70461909b25e2p-7 got -0x1.affe57fffffffp-17 ulperr -6486162973655040.000 = -0x1.70b216p+52 + -0x1.ffffe6p-2
src/math/special/fma.h:399: RZ fmal(0x1.8d1e44002c98p-3,-0x1.af9fdfb347834p-1,0x1.e280942fb4146p-4) want -0x1.761ac23896dfdp-5 got 0x1.0bec47fffffffp-14 ulperr 6590522089013248.000 = 0x1.76a0b6p+52 + 0x1.ffffdep-2
src/math/special/fma.h:400: RZ fmal(0x1.236e8cb9492c8p-1,-0x1.d37443a57f1c4p-1,0x1.ca10df801aabcp-4) want -0x1.a1a2cdf0138f9p-2 got 0x1.f090cab6fffffp-5 ulperr 8439088361242624.000 = 0x1.dfb4e4p+52 + 0x1.fff07cp-2
src/math/special/fma.h:401: RZ fmal(-0x1.6ad943e610fb8p-1,-0x1.cef92a7bb18bcp-1,0x1.f28587d8fb0ep-4) want 0x1.866b5204b9aecp-1 got -0x1.8c9eb9a6fffffp-5 ulperr -7304415446827008.000 = -0x1.9f353ap+52 + -0x1.fff9cep-2
src/math/special/fma.h:402: RZ fmal(-0x1.60a8569a5d894p-1,-0x1.ca07e29dd171cp-1,0x1.b6c475ace09ecp-4) want 0x1.72549291e2f7ap-1 got -0x1.b6fd181e7ffffp-5 ulperr -6997593720619008.000 = -0x1.8dc462p+52 + -0x1.fff924p-2
src/math/special/fma.h:403: RZ fmal(0x1.d1962720d678cp-1,-0x1.4548ee45c4084p-1,0x1.f416ab193d75cp-4) want -0x1.d2929879dc853p-2 got 0x1.fc38e6f3fffffp-8 ulperr 8347731722502144.000 = 0x1.da837ap+52 + 0x1.fffe04p-2
src/math/special/fma.h:404: RZ fmal(-0x1.9ddcb295a7d64p-1,0x1.67fb3a2068a78p-1,0x1.da9cd4597fe0ap-4) want -0x1.cf4f6eb4fc5d8p-2 got 0x1.59da5511fffffp-6 ulperr 8530909930192896.000 = 0x1.e4ed12p+52 + 0x1.fffa98p-2
src/math/special/fma.h:405: RZ fmal(0x1.c00d16ed45b88p+0,0x1.c787eddda3664p+0,0x1.1e3e6f0cc1802p-5) want 0x1.931b8f379dcc3p+1 got -0x1.63fb63b7fffffp-6 ulperr -7140470102687744.000 = -0x1.95e382p+52 + -0x1.ffff4ep-2
src/math/special/fma.h:406: RZ fmal(0x1.19c2a2372c184p+0,-0x1.cb506961c19fp+0,0x1.db1abf3f7ba3ap-6) want -0x1.f21c0eab0bc18p+0 got 0x1.a29607ffffff8p-13 ulperr 8763735275470848.000 = 0x1.f2292p+52 + 0x1.fffffcp-2
src/math/special/fma.h:407: RZ fmal(-0x1.3a263218ccd1cp+0,-0x1.e818d390df27cp+0,0x1.2a81ed71785f5p-5) want 0x1.3025ab0f63925p+1 got -0x1.bfdf0b9bfffffp-6 ulperr -5412167746584576.000 = -0x1.33a566p+52 + -0x1.ffff2p-2
src/math/special/fma.h:408: RZ fmal(0x1.b0b041fbaca58p+0,-0x1.9d5f76d178e6p+0,0x1.0215c7bb84cf9p-6) want -0x1.5b52aec7ef4p+1 got 0x1.6be7a77ffffffp-7 ulperr 6135177709355008.000 = 0x1.5cbe94p+52 + 0x1.ffffa6p-2
src/math/special/fma.h:409: RZ fmal(-0x1.377549d9a87f4p+0,-0x1.a13d4a03dd6d8p+0,0x1.f190388bc5cc6p-7) want 0x1.ff83bebbd6fe4p+0 got -0x1.e5a6a43ffffffp-9 ulperr -9015346807701504.000 = -0x1.003b46p+53 + -0x1.ffffc4p-2
src/math/special/fma.h:410: RZ fmal(0x1.6a726c0762ac8p-1,-0x1.d32f2d30e483cp+0,0x1.f953eb70fbde6p-7) want -0x1.46c61b3070332p+0 got 0x1.e556e47fffffep-11 ulperr 5752835425697792.000 = 0x1.4702c4p+52 + 0x1.fffffp-2
src/math/special/fma.h:411: RZ fmal(0x1.94cf2509d40cp-1,0x1.721976af6dfbp+0,0x1.f51a456921c3ep-7) want 0x1.28880842acc6p+0 got -0x1.effe1dfffffffp-8 ulperr -5250719389057024.000 = -0x1.2a7804p+52 + -0x1.ffff84p-2
src/math/special/fma.h:412: RZ fmal(0x1.b128eb0ad8728p-1,0x1.7682566a54268p+0,0x1.bd4122a074cafp-8) want 0x1.3e9469530e762p+0 got -0x1.6fe0c7bffffffp-9 ulperr -5617153650720768.000 = -0x1.3f4c56p+52 + -0x1.ffffd2p-2
src/math/special/fma.h:413: RZ fmal(0x1.c4ae75976e35cp+0,-0x1.11c329dd1160cp+0,0x1.9993f5e13c9bdp-8) want -0x1.e27d925b07cf1p+0 got 0x1.198edf5ffffffp-9 ulperr 8497736676540416.000 = 0x1.e30a56p+52 + 0x1.ffffdcp-2
src/math/special/fma.h:414: RZ fmal(-0x1.85f81f88fa3c4p+0,-0x1.17648a494fa18p-1,0x1.37d305113b48p-10) want 0x1.aa367b7490e57p-1 got -0x1.7a59ecffffffep-12 ulperr -7501265072291840.000 = -0x1.aa65c4p+52 + -0x1.fffff4p-2
src/math/special/fma.h:415: RZ fmal(-0x1.311f2b4319efcp+0,0x1.abbb5272e3d18p-1,0x1.35841b7bdbcfep-10) want -0x1.fd337f24b39ep-1 got 0x1.4cbc317ffffffp-11 ulperr 8963677814259712.000 = 0x1.fd86acp+52 + 0x1.ffffecp-2
src/math/special/fma.h:416: RZ fmal(0x1.ab94369a9a0dp-1,0x1.9d1e0e0aa3bacp+0,0x1.0a63ca87cfa78p-11) want 0x1.592173ee296b6p+0 got -0x1.fd8043ffffff8p-13 ulperr -6072696672616448.000 = -0x1.59315cp+52 + -0x1.fffffcp-2
src/math/special/fma.h:458: RD fmal(0x1p+0,0x1p+0,-0x1p-1074) want 0x1.fffffffffffffp-1 got -0x1.fffffp-43 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p+0
src/math/special/fma.h:459: bad fp exception: RD fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022)=0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:459: RD fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.fffffffffffffp-1022 got 0x0p+0 ulperr -9007199254740992.000 = -0x1p+53 + 0x0p+0
src/math/special/fma.h:460: bad fp exception: RD fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022)=0x1.ffffffffffffep-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:460: RD fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.ffffffffffffep-1022 got -0x1p-1074 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p+0
src/math/special/fma.h:461: bad fp exception: RD fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:461: RD fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1p-1021 got -0x1p-1074 ulperr 4503599358935040.000 = 0x1.fffffep+51 + -0x1p-1
src/math/special/fma.h:462: bad fp exception: RD fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:462: RD fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.fffffffffffffp-1022 got 0x0p+0 ulperr 9007198717870080.000 = 0x1.fffffep+52 + 0x0p+0
src/math/special/fma.h:463: RD fmal(0x1p-1074,-0x1p-1074,0x1p-1074) want 0x0p+0 got -0x1p-1074 ulperr -2.000 = -0x1p+0 + -0x1p+0
src/math/special/fma.h:464: RD fmal(0x1p-1074,-0x1p-1074,-0x1p-1074) want -0x1p-1073 got -0x1p-1074 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/special/fma.h:465: RD fmal(0x1.0000000000001p+0,0x1p+0,0x1p+53) want 0x1p+53 got 0x1.000008p+12 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:466: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p+53) want 0x1p+53 got 0x1.ffc02p+10 ulperr -4503599627370496.000 = -0x1p+52 + -0x1p-1
src/math/special/fma.h:467: RD fmal(0x1p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp+53) want 0x1.fffffffffffffp+53 got -0x1.ffffep+10 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:468: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep+53) want 0x1.ffffffffffffep+53 got 0x1.ffc02p+10 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:469: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p-52) want 0x1.0000000000001p+0 got -0x1.fffffp-42 ulperr -4503600164241408.000 = -0x1.000002p+52 + -0x1p-1
src/math/special/fma.h:470: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp-53) want 0x1.0000000000001p+0 got -0x1.fffff8p-41 ulperr -4503600164241408.000 = -0x1.000002p+52 + -0x1p-1
src/math/special/fma.h:471: RD fmal(0x1.0000000000005p+0,0x1.ffffffffffffbp-1,0x1p-52) want 0x1.0000000000003p+0 got -0x1.8fffff8p-37 ulperr -4503600164241408.000 = -0x1.000002p+52 + -0x1p-1
src/math/special/fma.h:472: RD fmal(0x1.0000000000006p+0,0x1.ffffffffffffdp-1,0x1p-52) want 0x1.0000000000005p+0 got -0x1.1fffff8p-37 ulperr -4503600164241408.000 = -0x1.000002p+52 + -0x1p-1
src/math/special/fma.h:491: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff4p+0 got 0x1.6800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:492: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1p+0) want 0x1.ffffffffffff8p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:493: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffff6p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:494: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffff4p+0 got 0x1.b000008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:495: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffff6p+0 got 0x1.f800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:496: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffff4p+0 got 0x1.f800008p-37 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:497: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffff6p+0 got 0x1.2000004p-36 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:498: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffff4p+0 got 0x1.2000004p-36 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:499: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.fffffffffffffp-1) want 0x1.ffffffffffff6p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:500: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffff4p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:501: RD fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff2p+0 got 0x1.4400004p-36 ulperr -9007199254740992.000 = -0x1p+53 + -0x1p-1
src/math/special/fma.h:502: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep-1) want 0x1.fffffffffffffp+0 got -0x1.fffffp-42 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:503: RD fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffp-42 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:504: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.fffffffffffffp-1) want 0x1.fffffffffffffp+0 got -0x1.fffff8p-41 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:505: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffff8p-41 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:506: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffff8p-41 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:507: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1p+0) want 0x1.fffffffffffffp+0 got -0x1.7ffffcp-40 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:508: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp+0 got -0x1.7ffffcp-40 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:509: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp+0 got -0x1.7ffffcp-40 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:510: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffffdp+0 got -0x1.fffffcp-40 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:511: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffffbp+0 got -0x1.fffffcp-40 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:512: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffffdp+0 got -0x1.3ffffep-39 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:513: RD fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffbp+0 got -0x1.3ffffep-39 ulperr -9007200328482816.000 = -0x1.000002p+53 + -0x1p-1
src/math/special/fma.h:514: RD fmal(0x1.5872449b765b9p+0,0x1.c9acf91f8de2bp+0,0x1.9265607e4d168p+0) want 0x1.fd190c77c2a67p+1 got -0x1.b3fc37bedp-4 ulperr -9195829923414016.000 = -0x1.055c78p+53 + -0x1.fffc98p-2
src/math/special/fma.h:515: RD fmal(0x1.81d010b146d0ep+0,0x1.2d3c680dc9071p+0,0x1.a80b69538754cp+0) want 0x1.b7040b44973a6p+1 got 0x1.4d0cb20197p+1 ulperr -1864177270390784.000 = -0x1.a7dd66p+50 + -0x1.0029a2p-1
src/math/special/fma.h:516: RD fmal(0x1.6a44f2252b6a2p+0,0x1.da452a378b832p+0,0x1.1fe2ce329104p+0) want 0x1.df842b6f48b12p+1 got 0x1.12e95c1ba4p+0 ulperr -6017592242208768.000 = -0x1.560f7ep+52 + -0x1.00112ep-1
src/math/special/fma.h:517: RD fmal(0x1.096b1d26463eep+0,0x1.d846d3e34333p+0,0x1.721e3480922b8p+0) want 0x1.ade2909c0269fp+1 got -0x1.a139d9b2cp-1 ulperr -9397596749561856.000 = -0x1.0b1884p+53 + -0x1.ffe5ecp-2
src/math/special/fma.h:518: RD fmal(0x1.99bd3434c454bp+0,0x1.03cb8e4115bdep+0,0x1.109f107188b08p+0) want 0x1.5837a47d37faep+1 got 0x1.cfdec0c00ap+0 ulperr -1975291027128320.000 = -0x1.c12112p+50 + -0x1.001cfep-1
src/math/special/fma.h:519: RD fmal(0x1.ba930a0a78ed2p+0,0x1.8c24e8d67f636p+0,0x1.ac49dbfbf8affp+0) want 0x1.164947ae6a5d9p+2 got -0x1.33e3b04edp-2 ulperr -5234191818031104.000 = -0x1.298784p+52 + -0x1.fffb3p-2
src/math/special/fma.h:520: RD fmal(0x1.be224ad773191p+0,0x1.d96b77169731fp+0,0x1.662cfb75d8edep+0) want 0x1.27cd67e720f78p+2 got 0x1.e4711611c78p+1 ulperr -942615667146752.000 = -0x1.aca6e8p+49 + -0x1.001e48p-1
src/math/special/fma.h:521: RD fmal(0x1.59e7a1b0bdb3cp+0,0x1.2decba4d46421p+0,0x1.88f4062e96df5p+0) want 0x1.90749e4794f79p+1 got -0x1.b3c84a9a88p-1 ulperr -8961479864745984.000 = -0x1.fd66b2p+52 + -0x1.ffe4c4p-2
src/math/special/fma.h:522: RD fmal(0x1.22edf4b4da9a7p+0,0x1.dfa8d65f506cdp+0,0x1.2799208da2fbap+0) want 0x1.a45a1e99ed7a8p+1 got 0x1.a0bdfb8976p-1 ulperr -5562059957731328.000 = -0x1.3c2aap+52 + -0x1.000d06p-1
src/math/special/fma.h:523: RD fmal(0x1.ad5b991a2a279p+0,0x1.f02fd26706024p+0,0x1.831cdd5c8797cp+0) want 0x1.30d3a2ac90a6p+2 got 0x1.c7c15e1c82p+1 ulperr -1353701750996992.000 = -0x1.33cbdp+50 + -0x1.001c7cp-1
src/math/special/fma.h:524: RD fmal(0x1.531f9620e764ap+0,0x1.cad61b54d4425p+0,0x1.df817cae8a9afp+0) want 0x1.0fd4e7f8671dcp+2 got 0x1.8e74e26059p+1 ulperr -1277252138434560.000 = -0x1.2269dcp+50 + -0x1.0018e8p-1
src/math/special/fma.h:525: RD fmal(0x1.629a5ad79494fp+0,0x1.049e58693f4c4p+0,0x1.45b0109e4d00cp+0) want 0x1.5758154e14965p+1 got -0x1.01173c9c2p-3 ulperr -6322847379095552.000 = -0x1.67698ap+52 + -0x1.fffbfcp-2
src/math/special/fma.h:526: RD fmal(0x1.2f52b53f9240ap+0,0x1.1d5c686dbb0dap+0,0x1.6da3e392a4fd4p+0) want 0x1.5fe03a6795912p+1 got 0x1.5bdb7d9084p+0 ulperr -3130480329228288.000 = -0x1.63e4f8p+51 + -0x1.0015bep-1
src/math/special/fma.h:527: RD fmal(0x1.058667552b49ep+0,0x1.23307bacc1c42p+0,0x1.5b059b47cd8f5p+0) want 0x1.423f752486d13p+1 got -0x1.4bfb042744p+0 ulperr -8589176530272256.000 = -0x1.e83cf8p+52 + -0x1.ffd68p-2
src/math/special/fma.h:528: RD fmal(0x1.a717d95337ed8p+0,0x1.2b1c37846aaadp+0,0x1.be65672f885b1p+0) want 0x1.d65e72303c075p+1 got -0x1.7e0573ec04p+1 ulperr -14995408015065088.000 = -0x1.aa31f4p+53 + -0x1.ffa07ep-2
src/math/special/fma.h:529: RD fmal(0x1.deb79287b3d32p+0,0x1.62776b829babap+0,0x1.67daf18bd2eb1p+0) want 0x1.ff5a0d45c69d6p+1 got 0x1.ad881652ap-3 ulperr -8523520438960128.000 = -0x1.e4818cp+52 + -0x1.00035cp-1
src/math/special/fma.h:530: RD fmal(0x1.fbf12d3a6de91p+0,0x1.879fe6124f11p+0,0x1.9f3f1247a8641p+0) want 0x1.2a126c6980018p+2 got 0x1.45e3d61a84p+2 ulperr 489379747332096.000 = 0x1.bd169ap+48 + -0x1.0028bcp-1
src/math/special/fma.h:531: RD fmal(0x1.c589628460e01p+0,0x1.e1bec1c797533p+0,0x1.349f30cdb84bbp+0) want 0x1.2286118b6f6e5p+2 got -0x1.8e9d95e0668p+1 ulperr -8617207097458688.000 = -0x1.e9d4dep+52 + -0x1.ffce2cp-2
src/math/special/fma.h:532: RD fmal(0x1.46fd6c2c924ebp+0,0x1.65e2f02e730a1p+0,0x1.37739d2751098p+0) want 0x1.804a71c1f1272p+1 got 0x1.855d7947cbp+0 ulperr -3335623536541696.000 = -0x1.7b376cp+51 + -0x1.001856p-1
src/math/special/fma.h:533: RD fmal(0x1.f99e595ae11fdp+0,0x1.bd33d9a1d81bp+0,0x1.932a2a2e244c1p+0) want 0x1.409e34f8f2f89p+2 got -0x1.7a49668944p+2 ulperr -12295261934059520.000 = -0x1.5d73cep+53 + -0x1.ffa16ep-2
src/math/special/fma.h:534: RD fmal(0x1.59ea1e56bfe55p+0,0x1.6f46b7d412a44p+0,0x1.80f2bc9a32cc3p+0) want 0x1.b89c7640e32ffp+1 got -0x1.ca180bfb6p-3 ulperr -8254993714905088.000 = -0x1.d53df8p+52 + -0x1.fff8d8p-2
src/math/special/fma.h:535: RD fmal(0x1.61490fcb44129p+0,0x1.0038ec4fc35c2p+0,0x1.df7436ed7a7b7p+0) want 0x1.a085ea68d05cfp+1 got -0x1.5ed2c690f7p+1 ulperr -13499302328401920.000 = -0x1.7fac5ap+53 + -0x1.ffa84cp-2
src/math/special/fma.h:536: RD fmal(0x1.d41b98788502bp+0,0x1.1a7b77843aca6p+0,0x1.05be891837d36p+0) want 0x1.8523596ceced9p+1 got -0x1.48c8fc403cp-1 ulperr -8291802121502720.000 = -0x1.d7559ap+52 + -0x1.ffeb74p-2
src/math/special/fma.h:537: RD fmal(0x1.3153cf6f69af9p+0,0x1.aaa947e38e57ap+0,0x1.8519f9b590645p+0) want 0x1.c0fcab7b46368p+1 got 0x1.25f4f4bd5p-3 ulperr -7575454189879296.000 = -0x1.ae9d5ep+52 + -0x1.00024cp-1
src/math/special/fma.h:538: RD fmal(0x1.c25a1f73581aap+0,0x1.0a51ffca372ap+0,0x1.0c77e3ebac5f3p+0) want 0x1.707ce48c7d72dp+1 got -0x1.3261c9a0ep+1 ulperr -11872436362412032.000 = -0x1.516f58p+53 + -0x1.ffb368p-2
src/math/special/fma.h:539: RD fmal(0x1.829c2cde44b7p+0,0x1.f692e86d8cb36p+0,0x1.455e72d264bfp+0) want 0x1.0f16a3b8b3f97p+2 got -0x1.684386466p+0 ulperr -6353495191977984.000 = -0x1.692786p+52 + -0x1.ffe97cp-2
src/math/special/fma.h:540: RD fmal(0x1.94729588dcc69p+0,0x1.c3bb794c6edf8p+0,0x1.9da4e94d262d2p+0) want 0x1.19d4bd84d9fd2p+2 got 0x1.e1b9a2757p-1 ulperr -3898699117756416.000 = -0x1.bb3b14p+51 + -0x1.000786p-1
src/math/special/fma.h:541: RD fmal(0x1.e6a5e7e39c3d5p+0,0x1.1b69af2bdd978p+0,0x1.e7ef1eafa119cp+0) want 0x1.00ac5b44c9f31p+2 got -0x1.6777d5d394p+1 ulperr -7677359268298752.000 = -0x1.b46848p+52 + -0x1.ffd312p-2
src/math/special/fma.h:542: RD fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022) want 0x1.b594d0e4368efp-1022 got -0x1.9dedc9561p-1023 ulperr -11338969211994112.000 = -0x1.4245dcp+53 + -0x1.ffcc42p-2
src/math/special/fma.h:543: RD fmal(0x1.022db53c98d14p-1022,0x1.21157eef74848p-2,0x1.2f880432b1bc1p-1022) want 0x1.786ad60a02b3dp-1022 got -0x1.150255ac98p-1022 ulperr -11495199721127936.000 = -0x1.46b696p+53 + -0x1.ffbacp-2
src/math/special/fma.h:544: RD fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022) want 0x1.cbb085199a3f5p-1022 got -0x1.6ed115da2f8p-1023 ulperr -11313498982187008.000 = -0x1.418c8ap+53 + -0x1.ffd226p-2
src/math/special/fma.h:545: RD fmal(0x1.adbc3a9d816dep-1022,0x1.e039d4431e3cdp-2,0x1.93ceef6fe18a2p-1022) want 0x1.2eabb7dc0e2fp-1021 got 0x1.ef7b6794e3p-1023 ulperr -3145487481831424.000 = -0x1.6599bcp+51 + -0x1.000f7cp-1
src/math/special/fma.h:546: RD fmal(0x1.645aa5c2df3afp-1022,0x1.649edfcad854fp-2,0x1.8b43e0bbaeb01p-1022) want 0x1.03af571d2b504p-1021 got 0x1.0ce86163c02p-1021 ulperr 162249436037120.000 = 0x1.272148p+47 + -0x1.00219ep-1
src/math/special/fma.h:547: RD fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022) want 0x1.ad9ce7fcefa3fp-1022 got -0x1.12bc4931e6p-1025 ulperr -8161980292530176.000 = -0x1.cff472p+52 + -0x1.fff76ap-2
src/math/special/fma.h:548: RD fmal(0x1.8ee3feb00c3e7p-1022,0x1.53bd9353313bcp-2,0x1.5501b57dc3b6fp-1022) want 0x1.d9598906f0bb3p-1022 got -0x1.4660b83f57p-1022 ulperr -14068956725772288.000 = -0x1.8fdd22p+53 + -0x1.ffae68p-2
src/math/special/fma.h:549: RD fmal(0x1.161225cfa61e2p-1022,0x1.b6dd69a0af5bp-2,0x1.924ffc3ead5c3p-1022) want 0x1.04be6fc25367bp-1021 got -0x1.f3ab56daa8p-1022 ulperr -8982192881401856.000 = -0x1.fe941cp+52 + -0x1.ffc18ap-2
src/math/special/fma.h:550: RD fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022) want 0x1.70b6c3169f043p-1022 got -0x1.a779baefbe8p-1023 ulperr -10211414669000704.000 = -0x1.2239d2p+53 + -0x1.ffcb1p-2
src/math/special/fma.h:551: RD fmal(0x1.ce0e2ea55040ep-1022,0x1.ce5a55fa3828dp-2,0x1.f2f444d50ce59p-1022) want 0x1.61ca36f5a8a79p-1021 got -0x1.173f0cea128p-1022 ulperr -8680214267691008.000 = -0x1.ed69bep+52 + -0x1.ffdd18p-2
src/math/special/fma.h:552: RD fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022) want 0x1.1440cf1c105ebp-1021 got -0x1.f88fda6p-1030 ulperr -4877233864835072.000 = -0x1.153d18p+52 + -0x1.ffffcp-2
src/math/special/fma.h:553: RD fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022) want 0x1.1186e1f77012dp-1021 got -0x1.2ffba526fcp-1025 ulperr -5146169147654144.000 = -0x1.24869ep+52 + -0x1.fffb4p-2
src/math/special/fma.h:554: RD fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022) want 0x1.8d86310bad175p-1022 got -0x1.1b755c367f8p-1023 ulperr -9486646453993472.000 = -0x1.0da07p+53 + -0x1.ffdc92p-2
src/math/special/fma.h:555: RD fmal(0x1.fb3391a4b1d23p-1022,0x1.4d8705b057caep-2,0x1.d026cb6dae73bp-1022) want 0x1.3aad18b424c67p-1021 got -0x1.0a1784c7c6cp-1021 ulperr -10216979872874496.000 = -0x1.22625p+53 + -0x1.ffbd7ap-2
src/math/special/fma.h:556: RD fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022) want 0x1.c0048fd33a417p-1022 got -0x1.d026e457f1p-1024 ulperr -9922975402819584.000 = -0x1.1a0726p+53 + -0x1.ffe2fep-2
src/math/special/fma.h:557: RD fmal(0x1.aa9eff070281cp-1022,0x1.fab05661b48ebp-2,0x1.cbe2af6c69c6ep-1022) want 0x1.4f7ddbe122764p-1021 got 0x1.9e529858dap-1023 ulperr -4079821109854208.000 = -0x1.cfd26cp+51 + -0x1.000cf2p-1
src/math/special/fma.h:558: RD fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022) want 0x1.e0e762ee2e7c5p-1022 got -0x1.e2fe0f96ecp-1023 ulperr -12708596701724672.000 = -0x1.693336p+53 + -0x1.ffc3ap-2
src/math/special/fma.h:559: RD fmal(0x1.4dab43918a9a8p-1022,0x1.ed667442b4751p-2,0x1.3f25f82e02e3ep-1022) want 0x1.dfec0ee732dcap-1022 got 0x1.6a41c4d18ap-1022 ulperr -2069988076683264.000 = -0x1.d6a92ap+50 + -0x1.002d48p-1
src/math/special/fma.h:560: RD fmal(0x1.7943735951931p-1022,0x1.fa6a357c5c9ddp-2,0x1.0bed44b0b71b4p-1022) want 0x1.c6803a6059abep-1022 got 0x1.0e970cce134p-1022 ulperr -3235394032238592.000 = -0x1.6fd25cp+51 + -0x1.0021d2p-1
src/math/special/fma.h:561: RD fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022) want 0x1.8640492c45959p-1022 got -0x1.3271a1b38p-1027 ulperr -7033840023371776.000 = -0x1.8fd3d8p+52 + -0x1.fffd9cp-2
src/math/special/fma.h:562: RD fmal(0x1.f52172c56bdf5p-1022,0x1.672b2de422734p-2,0x1.7bc5d708e5a34p-1022) want 0x1.15c5b95145cc6p-1021 got 0x1.3cf4f71d188p-1021 ulperr 689341647028224.000 = 0x1.3979eep+49 + -0x1.00279ep-1
src/math/special/fma.h:563: RD fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022) want 0x1.e7fa0dd76fbefp-1022 got -0x1.60a5d541bp-1024 ulperr -10135539776749568.000 = -0x1.2011c2p+53 + -0x1.ffe9f6p-2
src/math/special/fma.h:564: RD fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022) want 0x1.b63a7f56fce1fp-1022 got -0x1.497a9bc52p-1024 ulperr -9158461560455168.000 = -0x1.044c94p+53 + -0x1.ffeb68p-2
src/math/special/fma.h:565: RD fmal(0x1.f73d5f4e81fd8p-1022,0x1.7ccff2642124ap-2,0x1.e7d836a0c8308p-1022) want 0x1.517f1763126d3p-1021 got -0x1.06939f3372p-1021 ulperr -10556597969354752.000 = -0x1.2c095cp+53 + -0x1.ffbe5cp-2
src/math/special/fma.h:566: RD fmal(0x1.b4328925969fbp-1022,0x1.8fa02832a22d5p-2,0x1.2084598e2f8c6p-1022) want 0x1.cabf43838dc51p-1022 got -0x1.7c61d65f0a4p-1022 ulperr -14762119350190080.000 = -0x1.a3908ep+53 + -0x1.ffa0e8p-2
src/math/special/fma.h:567: RD fmal(0x1.66ee60a92676fp-1022,0x1.eddd2e7681ce4p-2,0x1.b81d57daeb3a7p-1022) want 0x1.329c918ffb682p-1021 got 0x1.cd379885b8p-1025 ulperr -4886855128449024.000 = -0x1.15c91ap+52 + -0x1.00039ap-1
src/math/special/fma.h:568: RD fmal(0x1.ff2737585895dp-1022,0x1.fb4bf3828ae4ap-2,0x1.4a866847740fp-1022) want 0x1.23e07e4dbbeaap-1021 got 0x1.46c53f7571p-1023 ulperr -3697601501200384.000 = -0x1.a45e5ep+51 + -0x1.000a36p-1
src/math/special/fma.h:569: RD fmal(0x1.5e2008d269a86p-1022,0x1.507bbbe4d78eep-2,0x1.6220c6f83f636p-1022) want 0x1.d52d9874f1c74p-1022 got 0x1.eda0503c4ap-1023 ulperr -3911886546403328.000 = -0x1.bcbae2p+51 + -0x1.001edap-1
src/math/special/fma.h:570: RD fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022) want 0x1.9864925e2fb0fp-1022 got -0x1.53ae580e8cp-1025 ulperr -7931489798848512.000 = -0x1.c2da5ep+52 + -0x1.fff562p-2
src/math/special/fma.h:571: RD fmal(0x1.7b353b81e793dp-1022,0x1.82b426f874c6dp-2,0x1.d92b19d21fd5cp-1022) want 0x1.342fb0c544a78p-1021 got 0x1.2af4c8aebe4p-1022 ulperr -2792024289837056.000 = -0x1.3d6a9ap+51 + -0x1.0012bp-1
src/math/special/fma.h:572: RD fmal(0x1.5be667823370ap-1022,0x1.a8a99b163869bp-2,0x1.95456b68dc3bcp-1022) want 0x1.12c638de03c7p-1021 got 0x1.49af7fc787p-1023 ulperr -3383908364189696.000 = -0x1.80b4b2p+51 + -0x1.000a4ep-1
src/math/special/fma.h:573: RD fmal(0x1.17b0fc6c850e5p-1022,0x1.d1d0a4853c315p-2,0x1.36b79f7c0c24p-1022) want 0x1.b5f2baff5635cp-1022 got 0x1.6a19304724p-1026 ulperr -7306334223466496.000 = -0x1.9f5128p+52 + -0x1.0002d4p-1
src/math/special/fma.h:574: RD fmal(0x1.bd97819bacfd8p-1022,0x1.2c25f267ba4eep-2,0x1.804b5204a3f3ap-1022) want 0x1.01739c190fd96p-1021 got 0x1.b9e166e6b4p-1022 ulperr -642314707927040.000 = -0x1.241746p+49 + -0x1.001b9ep-1
src/math/special/fma.h:575: RD fmal(0x1.596577053873dp-1022,0x1.3562ab2d29949p-2,0x1.b3f1ee75db6e7p-1022) want 0x1.0e268a498009ap-1021 got 0x1.e8136bc1594p-1022 ulperr -459378025037824.000 = -0x1.a1cd48p+48 + -0x1.001e82p-1
src/math/special/fma.h:576: RD fmal(0x1.3c7a68cf0f7b3p-1022,0x1.9a55c15b167bdp-2,0x1.7635b7b163c07p-1022) want 0x1.f5073b93b7b8p-1022 got 0x1.75f9a972138p-1023 ulperr -5524661530001408.000 = -0x1.3a0a68p+52 + -0x1.00176p-1
src/math/special/fma.h:577: RD fmal(0x1.5825164bc4068p-1022,0x1.dcbb6e5ff3245p-2,0x1.52fc3be0e84dap-1022) want 0x1.f334771c2dcfap-1022 got 0x1.2b86ba6b02p-1022 ulperr -3512784226615296.000 = -0x1.8f5b7ap+51 + -0x1.00257p-1
src/math/special/fma.h:578: RD fmal(0x1.139ea77b760ecp+1022,0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023) want 0x1.b93aac527380ep+1023 got 0x1.c3ec4f2eep+1022 ulperr -3787028625883136.000 = -0x1.ae890ap+51 + -0x1.001c3ep-1
src/math/special/fma.h:579: RD fmal(0x1.0e6f9c1657d7cp+1022,0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023) want 0x1.c0538372b4bbep+1022 got 0x1.54dede6dep+1021 ulperr -4888709480579072.000 = -0x1.15e416p+52 + -0x1.00154ep-1
src/math/special/fma.h:580: RD fmal(0x1.1182524fa411cp+1022,0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023) want 0x1.bf78969300a76p+1023 got 0x1.8651491efp+1022 ulperr -4438724951670784.000 = -0x1.f89fe6p+51 + -0x1.001866p-1
src/math/special/fma.h:581: RD fmal(0x1.1cbf4fb8ec82p+1022,0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023) want 0x1.72af6bbad4a28p+1023 got 0x1.a68c1c1ecp+1023 ulperr 912367084896256.000 = 0x1.9ee582p+49 + -0x1.0034d2p-1
src/math/special/fma.h:582: RD fmal(0x1.311e25c6db346p+1022,0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023) want 0x1.a61d29434fc13p+1023 got -0x1.791d1989p+1017 ulperr -7529566759288832.000 = -0x1.ac019ep+52 + -0x1.fffe86p-2
src/math/special/fma.h:583: RD fmal(0x1.1201cf577052fp+1022,0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023) want 0x1.8c8d801df34d9p+1023 got -0x1.3048609fd8p+1022 ulperr -inf = -inf + -0x1.ffd9f6p-2
src/math/special/fma.h:584: RD fmal(0x1.3e52335b76e81p+1022,0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023) want 0x1.ed6576837f653p+1023 got -0x1.e498d5441cp+1022 ulperr -inf = -inf + -0x1.ffc36cp-2
src/math/special/fma.h:585: RD fmal(0x1.18566b4f843cbp+1022,0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023) want 0x1.9a433b9796559p+1022 got 0x1.a048d2820cp+1022 ulperr 105937222238208.000 = 0x1.8165bap+46 + -0x1.ff6812p-2
src/math/special/fma.h:586: RD fmal(0x1.3fbe544fe1be8p+1022,0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023) want 0x1.efdb644b613e5p+1023 got -0x1.e14223656p+1022 ulperr -inf = -inf + -0x1.ffc3d8p-2
src/math/special/fma.h:587: RD fmal(0x1.263a0d3bc2e4p+1022,0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023) want 0x1.899878afc0fa2p+1023 got 0x1.a13620448p+1023 ulperr 415454199808000.000 = 0x1.79da78p+48 + -0x1.003426p-1
src/math/special/fma.h:588: RD fmal(0x1.5bf4aec8efc8ep+1022,0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023) want 0x1.d8f5e18b868bcp+1023 got 0x1.3e5679fdf8p+1022 ulperr -5520280126488576.000 = -0x1.39caa6p+52 + -0x1.0013e6p-1
src/math/special/fma.h:589: RD fmal(0x1.1e57f1af78279p+1022,0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023) want 0x1.692cb7ec68a93p+1023 got -0x1.c0a1f29b28p+1021 ulperr -8326959650045952.000 = -0x1.d95536p+52 + -0x1.ffe3f6p-2
src/math/special/fma.h:590: RD fmal(0x1.1d9824cd73511p+1022,0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023) want 0x1.2736a6b6e35f2p+1023 got 0x1.bc6f9c9778p+1021 ulperr -3238800478175232.000 = -0x1.70358p+51 + -0x1.000de4p-1
src/math/special/fma.h:591: RD fmal(0x1.1ff85a24aff31p+1022,0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023) want 0x1.8bc7ce208708p+1023 got 0x1.84b319bafap+1023 ulperr -124568119279616.000 = -0x1.c52d1ap+46 + -0x1.003096p-1
src/math/special/fma.h:592: RD fmal(0x1.0449b3965227ep+1022,0x1.4430d4441f9f2p+2,-0x1.a6966c96307ep+1023) want 0x1.d94eda8c81771p+1022 got -0x1.992ed6b72p+1021 ulperr -11925734759071744.000 = -0x1.52f324p+53 + -0x1.ffccdap-2
src/math/special/fma.h:593: RD fmal(0x1.3c91fa00fd0c7p+1022,0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023) want 0x1.95eae0d2644d3p+1022 got 0x1.9985d8eaap+1019 ulperr -6240425882943488.000 = -0x1.62ba26p+52 + -0x1.ff0cccp-2
src/math/special/fma.h:594: RD fmal(0x1.0979b36d46534p+1022,0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023) want 0x1.2420f34e2aa3cp+1022 got -0x1.335a0fe68p+1019 ulperr -5815056616914944.000 = -0x1.4a8c36p+52 + -0x1.007b32p-1
src/math/special/fma.h:595: RD fmal(0x1.4c89df582a599p+1022,0x1.55f3dc473ea8fp+2,-0x1.e35037292ddfp+1023) want 0x1.95109fdbc3771p+1023 got -0x1.afa3b29624p+1022 ulperr -inf = -inf + -0x1.ffca0cp-2
src/math/special/fma.h:596: RD fmal(0x1.35ee0a669c4fbp+1022,0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023) want 0x1.7a8ed977d817ap+1023 got 0x1.47da9ddfb8p+1022 ulperr -3775828961787904.000 = -0x1.ad4316p+51 + -0x1.00147ep-1
src/math/special/fma.h:597: RD fmal(0x1.117cc860f61bcp+1022,0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023) want 0x1.b960b7088e74fp+1022 got 0x1.ddfba372cp+1022 ulperr 643964914892800.000 = 0x1.24d762p+49 + -0x1.ff777ep-2
src/math/special/fma.h:598: RD fmal(0x1.1e78a37be320fp+1022,0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023) want 0x1.24326b9956dfbp+1023 got -0x1.d2881b3596p+1023 ulperr -inf = -inf + -0x1.ff8b5ep-2
src/math/special/fma.h:599: RD fmal(0x1.0c79b5c8331c2p+1022,0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023) want 0x1.9c135bb2cff84p+1021 got -0x1.cc298bacp+1019 ulperr -9273126449840128.000 = -0x1.078eep+53 + -0x1.00f19ep-1
src/math/special/fma.h:600: RD fmal(0x1.556c4c072f272p+1022,0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023) want 0x1.6fcc9f756df6dp+1023 got -0x1.f6f4c76598p+1022 ulperr -inf = -inf + -0x1.ffc122p-2
src/math/special/fma.h:601: RD fmal(-0x1.e8349b891b2fp-1,0x1.4a6dec9b72578p-1,0x1.3b6151ce809ddp-1) want 0x1.3a62fe330b355p-11 got -0x1.d97121p-11 ulperr -13859627535958016.000 = -0x1.89ea1p+53 + -0x1.ff89a4p-2
src/math/special/fma.h:602: RD fmal(0x1.2996632ac7d74p-1,-0x1.bb3c58b654d94p-1,0x1.01a6660e64a31p-1) want 0x1.ed045bb956a8ep-15 got -0x1.070d62p-15 ulperr -13300912420290560.000 = -0x1.7a08ep+53 + -0x1.eabe3cp-2
src/math/special/fma.h:603: RD fmal(-0x1.c602e894c1df8p-1,0x1.a1c980e7d3f94p-1,0x1.7271244b43386p-1) want -0x1.ba251fe026e5cp-15 got -0x1.af2b6c0000001p-15 ulperr 193081294979072.000 = 0x1.5f367cp+47 + -0x1.02ca1ap-1
src/math/special/fma.h:604: RD fmal(-0x1.c84baf47e85cp-1,0x1.770b5149ef2ep-1,0x1.4d80f139320bap-1) want -0x1.79277433b9e24p-10 got 0x1.d4b6effffffffp-11 ulperr 10757822555881472.000 = 0x1.31c176p+53 + -0x1.001d4cp-1
src/math/special/fma.h:605: RD fmal(-0x1.36e667dcf9c6p-1,0x1.2591f82556b88p-1,0x1.2452a0f795f95p-1) want 0x1.c83c8e63c159fp-3 got -0x1.221cccp-12 ulperr -8036166741786624.000 = -0x1.c8cd9ep+52 + -0x1.ffffdcp-2
src/math/special/fma.h:606: RD fmal(0x1.88b2cede61e4cp-1,-0x1.71dcab5ad9e9p-3,0x1.32b27fea2ae97p-3) want 0x1.70461909b25e2p-7 got -0x1.affe57fffffffp-17 ulperr -6486163510525952.000 = -0x1.70b21ap+52 + -0x1.ffffe6p-2
src/math/special/fma.h:607: RD fmal(0x1.8d1e44002c98p-3,-0x1.af9fdfb347834p-1,0x1.e280942fb4146p-4) want -0x1.761ac23896dfep-5 got 0x1.0bec47fffffffp-14 ulperr 6590522089013248.000 = 0x1.76a0b8p+52 + -0x1.00001p-1
src/math/special/fma.h:608: RD fmal(0x1.236e8cb9492c8p-1,-0x1.d37443a57f1c4p-1,0x1.ca10df801aabcp-4) want -0x1.a1a2cdf0138fap-2 got 0x1.f090cab6fffffp-5 ulperr 8439088361242624.000 = 0x1.dfb4e6p+52 + -0x1.0007c2p-1
src/math/special/fma.h:609: RD fmal(-0x1.6ad943e610fb8p-1,-0x1.cef92a7bb18bcp-1,0x1.f28587d8fb0ep-4) want 0x1.866b5204b9aecp-1 got -0x1.8c9eb9a7p-5 ulperr -7304415983697920.000 = -0x1.9f353ep+52 + -0x1.fff9cep-2
src/math/special/fma.h:610: RD fmal(-0x1.60a8569a5d894p-1,-0x1.ca07e29dd171cp-1,0x1.b6c475ace09ecp-4) want 0x1.72549291e2f7ap-1 got -0x1.b6fd181e8p-5 ulperr -6997594257489920.000 = -0x1.8dc466p+52 + -0x1.fff924p-2
src/math/special/fma.h:611: RD fmal(0x1.d1962720d678cp-1,-0x1.4548ee45c4084p-1,0x1.f416ab193d75cp-4) want -0x1.d2929879dc854p-2 got 0x1.fc38e6f3fffffp-8 ulperr 8347731722502144.000 = 0x1.da837cp+52 + -0x1.0000fep-1
src/math/special/fma.h:612: RD fmal(-0x1.9ddcb295a7d64p-1,0x1.67fb3a2068a78p-1,0x1.da9cd4597fe0ap-4) want -0x1.cf4f6eb4fc5d9p-2 got 0x1.59da5511fffffp-6 ulperr 8530909930192896.000 = 0x1.e4ed14p+52 + -0x1.0002b4p-1
src/math/special/fma.h:613: RD fmal(0x1.c00d16ed45b88p+0,0x1.c787eddda3664p+0,0x1.1e3e6f0cc1802p-5) want 0x1.931b8f379dcc3p+1 got -0x1.63fb63b8p-6 ulperr -7140470639558656.000 = -0x1.95e386p+52 + -0x1.ffff4ep-2
src/math/special/fma.h:614: RD fmal(0x1.19c2a2372c184p+0,-0x1.cb506961c19fp+0,0x1.db1abf3f7ba3ap-6) want -0x1.f21c0eab0bc19p+0 got 0x1.a29607ffffff8p-13 ulperr 8763735275470848.000 = 0x1.f22922p+52 + -0x1.000002p-1
src/math/special/fma.h:615: RD fmal(-0x1.3a263218ccd1cp+0,-0x1.e818d390df27cp+0,0x1.2a81ed71785f5p-5) want 0x1.3025ab0f63925p+1 got -0x1.bfdf0b9cp-6 ulperr -5412168283455488.000 = -0x1.33a56ap+52 + -0x1.ffff2p-2
src/math/special/fma.h:616: RD fmal(0x1.b0b041fbaca58p+0,-0x1.9d5f76d178e6p+0,0x1.0215c7bb84cf9p-6) want -0x1.5b52aec7ef401p+1 got 0x1.6be7a77ffffffp-7 ulperr 6135177709355008.000 = 0x1.5cbe96p+52 + -0x1.00002ep-1
src/math/special/fma.h:617: RD fmal(-0x1.377549d9a87f4p+0,-0x1.a13d4a03dd6d8p+0,0x1.f190388bc5cc6p-7) want 0x1.ff83bebbd6fe4p+0 got -0x1.e5a6a44p-9 ulperr -9015347881443328.000 = -0x1.003b4ap+53 + -0x1.ffffc4p-2
src/math/special/fma.h:618: RD fmal(0x1.6a726c0762ac8p-1,-0x1.d32f2d30e483cp+0,0x1.f953eb70fbde6p-7) want -0x1.46c61b3070333p+0 got 0x1.e556e47fffffep-11 ulperr 5752835425697792.000 = 0x1.4702c6p+52 + -0x1.000008p-1
src/math/special/fma.h:619: RD fmal(0x1.94cf2509d40cp-1,0x1.721976af6dfbp+0,0x1.f51a456921c3ep-7) want 0x1.28880842acc6p+0 got -0x1.effe1ep-8 ulperr -5250719925927936.000 = -0x1.2a7808p+52 + -0x1.ffff84p-2
src/math/special/fma.h:620: RD fmal(0x1.b128eb0ad8728p-1,0x1.7682566a54268p+0,0x1.bd4122a074cafp-8) want 0x1.3e9469530e762p+0 got -0x1.6fe0c7cp-9 ulperr -5617154187591680.000 = -0x1.3f4c5ap+52 + -0x1.ffffd2p-2
src/math/special/fma.h:621: RD fmal(0x1.c4ae75976e35cp+0,-0x1.11c329dd1160cp+0,0x1.9993f5e13c9bdp-8) want -0x1.e27d925b07cf2p+0 got 0x1.198edf5ffffffp-9 ulperr 8497736676540416.000 = 0x1.e30a58p+52 + -0x1.000012p-1
src/math/special/fma.h:622: RD fmal(-0x1.85f81f88fa3c4p+0,-0x1.17648a494fa18p-1,0x1.37d305113b48p-10) want 0x1.aa367b7490e57p-1 got -0x1.7a59ecffffffep-12 ulperr -7501265609162752.000 = -0x1.aa65c8p+52 + -0x1.fffff4p-2
src/math/special/fma.h:623: RD fmal(-0x1.311f2b4319efcp+0,0x1.abbb5272e3d18p-1,0x1.35841b7bdbcfep-10) want -0x1.fd337f24b39e1p-1 got 0x1.4cbc317ffffffp-11 ulperr 8963677814259712.000 = 0x1.fd86aep+52 + -0x1.00000ap-1
src/math/special/fma.h:624: RD fmal(0x1.ab94369a9a0dp-1,0x1.9d1e0e0aa3bacp+0,0x1.0a63ca87cfa78p-11) want 0x1.592173ee296b6p+0 got -0x1.fd8043ffffff8p-13 ulperr -6072697209487360.000 = -0x1.59316p+52 + -0x1.fffffcp-2
src/math/special/fma.h:666: RU fmal(0x1p+0,0x1p+0,-0x1p-1074) want 0x1p+0 got -0x1.fffffp-43 ulperr -4503599627370496.000 = -0x1p+52 + 0x0p+0
src/math/special/fma.h:667: bad fp exception: RU fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022)=0x1p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:667: RU fmal(0x1p-1074,0x1p-1074,0x1.fffffffffffffp-1022) want 0x1p-1021 got 0x1p-1074 ulperr -4503599358935040.000 = -0x1.fffffep+51 + 0x1p-1
src/math/special/fma.h:668: bad fp exception: RU fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022)=0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:668: RU fmal(0x1p-1074,-0x1p-1074,0x1.fffffffffffffp-1022) want 0x1.fffffffffffffp-1022 got -0x0p+0 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x0p+0
src/math/special/fma.h:669: bad fp exception: RU fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.fffffffffffffp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:669: RU fmal(0x1p-1074,-0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.fffffffffffffp-1022 got -0x0p+0 ulperr 9007199254740992.000 = 0x1p+53 + 0x0p+0
src/math/special/fma.h:670: bad fp exception: RU fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022)=-0x1.ffffffffffffep-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:670: RU fmal(0x1p-1074,0x1p-1074,-0x1.fffffffffffffp-1022) want -0x1.ffffffffffffep-1022 got 0x1p-1074 ulperr 9007199254740992.000 = 0x1p+53 + 0x1p+0
src/math/special/fma.h:671: RU fmal(0x1p-1074,-0x1p-1074,0x1p-1074) want 0x1p-1074 got -0x0p+0 ulperr -1.000 = -0x1p+0 + 0x0p+0
src/math/special/fma.h:672: RU fmal(0x1p-1074,-0x1p-1074,-0x1p-1074) want -0x1p-1074 got -0x0p+0 ulperr 1.000 = 0x1p+0 + 0x0p+0
src/math/special/fma.h:673: RU fmal(0x1.0000000000001p+0,0x1p+0,0x1p+53) want 0x1.0000000000001p+53 got 0x1.000008p+12 ulperr -4503599358935040.000 = -0x1.fffffep+51 + 0x1p-1
src/math/special/fma.h:674: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p+53) want 0x1.0000000000001p+53 got 0x1.ffc02p+10 ulperr -4503599358935040.000 = -0x1.fffffep+51 + 0x1p-1
src/math/special/fma.h:675: RU fmal(0x1p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp+53) want 0x1p+54 got -0x1.ffffep+10 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-2
src/math/special/fma.h:676: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep+53) want 0x1.fffffffffffffp+53 got 0x1.ffc02p+10 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:677: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1p-52) want 0x1.0000000000002p+0 got -0x1.fffffp-42 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:678: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.fffffffffffffp-53) want 0x1.0000000000002p+0 got -0x1.fffff8p-41 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:679: RU fmal(0x1.0000000000005p+0,0x1.ffffffffffffbp-1,0x1p-52) want 0x1.0000000000004p+0 got -0x1.8fffff8p-37 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:680: RU fmal(0x1.0000000000006p+0,0x1.ffffffffffffdp-1,0x1p-52) want 0x1.0000000000006p+0 got -0x1.1fffff8p-37 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-1
src/math/special/fma.h:699: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff5p+0 got 0x1.6800008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:700: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1p+0) want 0x1.ffffffffffff9p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:701: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffff7p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:702: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffffap-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffff5p+0 got 0x1.b000008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:703: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffff7p+0 got 0x1.f800008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:704: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff9p-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffff5p+0 got 0x1.f800008p-37 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:705: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffff7p+0 got 0x1.2000004p-36 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:706: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff8p-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffff5p+0 got 0x1.2000004p-36 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:707: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.fffffffffffffp-1) want 0x1.ffffffffffff7p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:708: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffff5p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:709: RU fmal(0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffff3p+0 got 0x1.4400004p-36 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1p-1
src/math/special/fma.h:710: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffep-1) want 0x1p+1 got -0x1.fffffp-42 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-2
src/math/special/fma.h:711: RU fmal(0x1.0000000000001p+0,0x1.fffffffffffffp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffep+0 got -0x1.fffffp-42 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:712: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.fffffffffffffp-1) want 0x1p+1 got -0x1.fffff8p-41 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-2
src/math/special/fma.h:713: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffffbp-1) want 0x1.ffffffffffffep+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:714: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffep-1,0x1.ffffffffffff7p-1) want 0x1.ffffffffffffcp+0 got -0x1.fffff8p-41 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:715: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1p+0) want 0x1p+1 got -0x1.7ffffcp-40 ulperr -4503599627370496.000 = -0x1p+52 + 0x1p-2
src/math/special/fma.h:716: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffffcp-1) want 0x1.ffffffffffffep+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:717: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffdp-1,0x1.ffffffffffff8p-1) want 0x1.ffffffffffffcp+0 got -0x1.7ffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:718: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffffdp-1) want 0x1.ffffffffffffep+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:719: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffcp-1,0x1.ffffffffffff9p-1) want 0x1.ffffffffffffcp+0 got -0x1.fffffcp-40 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:720: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffep-1) want 0x1.ffffffffffffep+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:721: RU fmal(0x1.0000000000001p+0,0x1.ffffffffffffbp-1,0x1.ffffffffffffap-1) want 0x1.ffffffffffffcp+0 got -0x1.3ffffep-39 ulperr -9007199254740992.000 = -0x1p+53 + 0x1p-1
src/math/special/fma.h:722: RU fmal(0x1.5872449b765b9p+0,0x1.c9acf91f8de2bp+0,0x1.9265607e4d168p+0) want 0x1.fd190c77c2a68p+1 got -0x1.b3fc37becffffp-4 ulperr -9195828849672192.000 = -0x1.055c76p+53 + 0x1.0001b4p-1
src/math/special/fma.h:723: RU fmal(0x1.81d010b146d0ep+0,0x1.2d3c680dc9071p+0,0x1.a80b69538754cp+0) want 0x1.b7040b44973a7p+1 got 0x1.4d0cb20197001p+1 ulperr -1864177136173056.000 = -0x1.a7dd64p+50 + 0x1.ffacbcp-2
src/math/special/fma.h:724: RU fmal(0x1.6a44f2252b6a2p+0,0x1.da452a378b832p+0,0x1.1fe2ce329104p+0) want 0x1.df842b6f48b13p+1 got 0x1.12e95c1ba4001p+0 ulperr -6017591705337856.000 = -0x1.560f7cp+52 + 0x1.ffdda2p-2
src/math/special/fma.h:725: RU fmal(0x1.096b1d26463eep+0,0x1.d846d3e34333p+0,0x1.721e3480922b8p+0) want 0x1.ade2909c026ap+1 got -0x1.a139d9b2bffffp-1 ulperr -9397595675820032.000 = -0x1.0b1882p+53 + 0x1.000d0ap-1
src/math/special/fma.h:726: RU fmal(0x1.99bd3434c454bp+0,0x1.03cb8e4115bdep+0,0x1.109f107188b08p+0) want 0x1.5837a47d37fafp+1 got 0x1.cfdec0c00a001p+0 ulperr -1975290892910592.000 = -0x1.c1211p+50 + 0x1.ffc604p-2
src/math/special/fma.h:727: RU fmal(0x1.ba930a0a78ed2p+0,0x1.8c24e8d67f636p+0,0x1.ac49dbfbf8affp+0) want 0x1.164947ae6a5dap+2 got -0x1.33e3b04ecffffp-2 ulperr -5234191281160192.000 = -0x1.298782p+52 + 0x1.000268p-1
src/math/special/fma.h:728: RU fmal(0x1.be224ad773191p+0,0x1.d96b77169731fp+0,0x1.662cfb75d8edep+0) want 0x1.27cd67e720f79p+2 got 0x1.e4711611c7801p+1 ulperr -942615600037888.000 = -0x1.aca6e6p+49 + 0x1.ffc372p-2
src/math/special/fma.h:729: RU fmal(0x1.59e7a1b0bdb3cp+0,0x1.2decba4d46421p+0,0x1.88f4062e96df5p+0) want 0x1.90749e4794f7ap+1 got -0x1.b3c84a9a87fffp-1 ulperr -8961479327875072.000 = -0x1.fd66bp+52 + 0x1.000d9ep-1
src/math/special/fma.h:730: RU fmal(0x1.22edf4b4da9a7p+0,0x1.dfa8d65f506cdp+0,0x1.2799208da2fbap+0) want 0x1.a45a1e99ed7a9p+1 got 0x1.a0bdfb8976001p-1 ulperr -5562059420860416.000 = -0x1.3c2a9ep+52 + 0x1.ffe5f4p-2
src/math/special/fma.h:731: RU fmal(0x1.ad5b991a2a279p+0,0x1.f02fd26706024p+0,0x1.831cdd5c8797cp+0) want 0x1.30d3a2ac90a61p+2 got 0x1.c7c15e1c82001p+1 ulperr -1353701616779264.000 = -0x1.33cbcep+50 + 0x1.ffc708p-2
src/math/special/fma.h:732: RU fmal(0x1.531f9620e764ap+0,0x1.cad61b54d4425p+0,0x1.df817cae8a9afp+0) want 0x1.0fd4e7f8671ddp+2 got 0x1.8e74e26059001p+1 ulperr -1277252004216832.000 = -0x1.2269dap+50 + 0x1.ffce32p-2
src/math/special/fma.h:733: RU fmal(0x1.629a5ad79494fp+0,0x1.049e58693f4c4p+0,0x1.45b0109e4d00cp+0) want 0x1.5758154e14966p+1 got -0x1.01173c9c1ffffp-3 ulperr -6322846842224640.000 = -0x1.676988p+52 + 0x1.000202p-1
src/math/special/fma.h:734: RU fmal(0x1.2f52b53f9240ap+0,0x1.1d5c686dbb0dap+0,0x1.6da3e392a4fd4p+0) want 0x1.5fe03a6795913p+1 got 0x1.5bdb7d9084001p+0 ulperr -3130480060792832.000 = -0x1.63e4f6p+51 + 0x1.ffd484p-2
src/math/special/fma.h:735: RU fmal(0x1.058667552b49ep+0,0x1.23307bacc1c42p+0,0x1.5b059b47cd8f5p+0) want 0x1.423f752486d14p+1 got -0x1.4bfb042743fffp+0 ulperr -8589175993401344.000 = -0x1.e83cf6p+52 + 0x1.0014cp-1
src/math/special/fma.h:736: RU fmal(0x1.a717d95337ed8p+0,0x1.2b1c37846aaadp+0,0x1.be65672f885b1p+0) want 0x1.d65e72303c076p+1 got -0x1.7e0573ec03fffp+1 ulperr -14995406941323264.000 = -0x1.aa31f2p+53 + 0x1.002fcp-1
src/math/special/fma.h:737: RU fmal(0x1.deb79287b3d32p+0,0x1.62776b829babap+0,0x1.67daf18bd2eb1p+0) want 0x1.ff5a0d45c69d7p+1 got 0x1.ad881652a0001p-3 ulperr -8523519902089216.000 = -0x1.e4818ap+52 + 0x1.fff94ap-2
src/math/special/fma.h:738: RU fmal(0x1.fbf12d3a6de91p+0,0x1.879fe6124f11p+0,0x1.9f3f1247a8641p+0) want 0x1.2a126c6980019p+2 got 0x1.45e3d61a84001p+2 ulperr 489379780886528.000 = 0x1.bd169cp+48 + 0x1.ffae88p-2
src/math/special/fma.h:739: RU fmal(0x1.c589628460e01p+0,0x1.e1bec1c797533p+0,0x1.349f30cdb84bbp+0) want 0x1.2286118b6f6e6p+2 got -0x1.8e9d95e0667ffp+1 ulperr -8617206560587776.000 = -0x1.e9d4dcp+52 + 0x1.0018eap-1
src/math/special/fma.h:740: RU fmal(0x1.46fd6c2c924ebp+0,0x1.65e2f02e730a1p+0,0x1.37739d2751098p+0) want 0x1.804a71c1f1273p+1 got 0x1.855d7947cb001p+0 ulperr -3335623268106240.000 = -0x1.7b376ap+51 + 0x1.ffcf54p-2
src/math/special/fma.h:741: RU fmal(0x1.f99e595ae11fdp+0,0x1.bd33d9a1d81bp+0,0x1.932a2a2e244c1p+0) want 0x1.409e34f8f2f8ap+2 got -0x1.7a49668943fffp+2 ulperr -12295260860317696.000 = -0x1.5d73ccp+53 + 0x1.002f4ap-1
src/math/special/fma.h:742: RU fmal(0x1.59ea1e56bfe55p+0,0x1.6f46b7d412a44p+0,0x1.80f2bc9a32cc3p+0) want 0x1.b89c7640e33p+1 got -0x1.ca180bfb5ffffp-3 ulperr -8254993178034176.000 = -0x1.d53df6p+52 + 0x1.000394p-1
src/math/special/fma.h:743: RU fmal(0x1.61490fcb44129p+0,0x1.0038ec4fc35c2p+0,0x1.df7436ed7a7b7p+0) want 0x1.a085ea68d05dp+1 got -0x1.5ed2c690f6fffp+1 ulperr -13499301254660096.000 = -0x1.7fac58p+53 + 0x1.002bdap-1
src/math/special/fma.h:744: RU fmal(0x1.d41b98788502bp+0,0x1.1a7b77843aca6p+0,0x1.05be891837d36p+0) want 0x1.8523596cecedap+1 got -0x1.48c8fc403bfffp-1 ulperr -8291801584631808.000 = -0x1.d75598p+52 + 0x1.000a46p-1
src/math/special/fma.h:745: RU fmal(0x1.3153cf6f69af9p+0,0x1.aaa947e38e57ap+0,0x1.8519f9b590645p+0) want 0x1.c0fcab7b46369p+1 got 0x1.25f4f4bd50001p-3 ulperr -7575453653008384.000 = -0x1.ae9d5cp+52 + 0x1.fffb68p-2
src/math/special/fma.h:746: RU fmal(0x1.c25a1f73581aap+0,0x1.0a51ffca372ap+0,0x1.0c77e3ebac5f3p+0) want 0x1.707ce48c7d72ep+1 got -0x1.3261c9a0dffffp+1 ulperr -11872435288670208.000 = -0x1.516f56p+53 + 0x1.00264cp-1
src/math/special/fma.h:747: RU fmal(0x1.829c2cde44b7p+0,0x1.f692e86d8cb36p+0,0x1.455e72d264bfp+0) want 0x1.0f16a3b8b3f98p+2 got -0x1.684386465ffffp+0 ulperr -6353494655107072.000 = -0x1.692784p+52 + 0x1.000b42p-1
src/math/special/fma.h:748: RU fmal(0x1.94729588dcc69p+0,0x1.c3bb794c6edf8p+0,0x1.9da4e94d262d2p+0) want 0x1.19d4bd84d9fd3p+2 got 0x1.e1b9a27570001p-1 ulperr -3898698849320960.000 = -0x1.bb3b12p+51 + 0x1.fff0f2p-2
src/math/special/fma.h:749: RU fmal(0x1.e6a5e7e39c3d5p+0,0x1.1b69af2bdd978p+0,0x1.e7ef1eafa119cp+0) want 0x1.00ac5b44c9f32p+2 got -0x1.6777d5d393fffp+1 ulperr -7677358731427840.000 = -0x1.b46846p+52 + 0x1.001678p-1
src/math/special/fma.h:750: bad fp exception: RU fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022)=0x1.b594d0e4368fp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:750: RU fmal(0x1.bc9ba1320700cp-1022,0x1.981f2e1a451a8p-2,0x1.046144efc0ceap-1022) want 0x1.b594d0e4368fp-1022 got -0x1.9dedc9560fffep-1023 ulperr -11338968138252288.000 = -0x1.4245dap+53 + 0x1.0019dep-1
src/math/special/fma.h:751: RU fmal(0x1.022db53c98d14p-1022,0x1.21157eef74848p-2,0x1.2f880432b1bc1p-1022) want 0x1.786ad60a02b3ep-1022 got -0x1.150255ac97fffp-1022 ulperr -11495198647386112.000 = -0x1.46b694p+53 + 0x1.0022ap-1
src/math/special/fma.h:752: bad fp exception: RU fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022)=0x1.cbb085199a3f6p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:752: RU fmal(0x1.805a491fa9597p-1022,0x1.e0f49d782ff87p-2,0x1.172a62346206p-1022) want 0x1.cbb085199a3f6p-1022 got -0x1.6ed115da2f7fep-1023 ulperr -11313497908445184.000 = -0x1.418c88p+53 + 0x1.0016eep-1
src/math/special/fma.h:753: bad fp exception: RU fmal(0x1.adbc3a9d816dep-1022,0x1.e039d4431e3cdp-2,0x1.93ceef6fe18a2p-1022)=0x1.2eabb7dc0e2f1p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:753: RU fmal(0x1.adbc3a9d816dep-1022,0x1.e039d4431e3cdp-2,0x1.93ceef6fe18a2p-1022) want 0x1.2eabb7dc0e2f1p-1021 got 0x1.ef7b6794e3002p-1023 ulperr -3145487213395968.000 = -0x1.6599bap+51 + 0x1.ffe108p-2
src/math/special/fma.h:754: RU fmal(0x1.645aa5c2df3afp-1022,0x1.649edfcad854fp-2,0x1.8b43e0bbaeb01p-1022) want 0x1.03af571d2b505p-1021 got 0x1.0ce86163c0201p-1021 ulperr 162249452814336.000 = 0x1.27214ap+47 + 0x1.ffbcc6p-2
src/math/special/fma.h:755: bad fp exception: RU fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022)=0x1.ad9ce7fcefa4p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:755: RU fmal(0x1.133474a2c0fb1p-1022,0x1.72442bcbfa01dp-2,0x1.4a1a21971c5dbp-1022) want 0x1.ad9ce7fcefa4p-1022 got -0x1.12bc4931e5ff8p-1025 ulperr -8161979755659264.000 = -0x1.cff47p+52 + 0x1.00044ap-1
src/math/special/fma.h:756: RU fmal(0x1.8ee3feb00c3e7p-1022,0x1.53bd9353313bcp-2,0x1.5501b57dc3b6fp-1022) want 0x1.d9598906f0bb4p-1022 got -0x1.4660b83f56fffp-1022 ulperr -14068955652030464.000 = -0x1.8fdd2p+53 + 0x1.0028ccp-1
src/math/special/fma.h:757: RU fmal(0x1.161225cfa61e2p-1022,0x1.b6dd69a0af5bp-2,0x1.924ffc3ead5c3p-1022) want 0x1.04be6fc25367cp-1021 got -0x1.f3ab56daa7fffp-1022 ulperr -8982192344530944.000 = -0x1.fe941ap+52 + 0x1.001f3ap-1
src/math/special/fma.h:758: bad fp exception: RU fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022)=0x1.70b6c3169f044p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:758: RU fmal(0x1.820f7faf219afp-1022,0x1.06717ae771f6dp-2,0x1.0dc5035f5e2afp-1022) want 0x1.70b6c3169f044p-1022 got -0x1.a779baefbe7fep-1023 ulperr -10211413595258880.000 = -0x1.2239dp+53 + 0x1.001a78p-1
src/math/special/fma.h:759: RU fmal(0x1.ce0e2ea55040ep-1022,0x1.ce5a55fa3828dp-2,0x1.f2f444d50ce59p-1022) want 0x1.61ca36f5a8a7ap-1021 got -0x1.173f0cea127ffp-1022 ulperr -8680213730820096.000 = -0x1.ed69bcp+52 + 0x1.001174p-1
src/math/special/fma.h:760: bad fp exception: RU fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022)=0x1.1440cf1c105ecp-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:760: RU fmal(0x1.a7a271c67cdcfp-1022,0x1.1e979090e218p-2,0x1.b1f10b6e2177ap-1022) want 0x1.1440cf1c105ecp-1021 got -0x1.f88fda5ffffp-1030 ulperr -4877233327964160.000 = -0x1.153d16p+52 + 0x1.00002p-1
src/math/special/fma.h:761: bad fp exception: RU fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022)=0x1.1186e1f77012ep-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:761: RU fmal(0x1.76df065829dc6p-1022,0x1.fb22ab1b86b8bp-2,0x1.6966267f317cp-1022) want 0x1.1186e1f77012ep-1021 got -0x1.2ffba526fbff8p-1025 ulperr -5146168610783232.000 = -0x1.24869cp+52 + 0x1.00026p-1
src/math/special/fma.h:762: bad fp exception: RU fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022)=0x1.8d86310bad176p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:762: RU fmal(0x1.8b004a28b70dbp-1022,0x1.48e5805a8b453p-2,0x1.0ea791f716557p-1022) want 0x1.8d86310bad176p-1022 got -0x1.1b755c367f7fep-1023 ulperr -9486645380251648.000 = -0x1.0da06ep+53 + 0x1.0011b8p-1
src/math/special/fma.h:763: RU fmal(0x1.fb3391a4b1d23p-1022,0x1.4d8705b057caep-2,0x1.d026cb6dae73bp-1022) want 0x1.3aad18b424c68p-1021 got -0x1.0a1784c7c6bffp-1021 ulperr -10216978799132672.000 = -0x1.22624ep+53 + 0x1.002142p-1
src/math/special/fma.h:764: bad fp exception: RU fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022)=0x1.c0048fd33a418p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:764: RU fmal(0x1.a5ba39730e197p-1022,0x1.794df89b1cc49p-2,0x1.24a0a388d0b6bp-1022) want 0x1.c0048fd33a418p-1022 got -0x1.d026e457f0ffcp-1024 ulperr -9922974329077760.000 = -0x1.1a0724p+53 + 0x1.000e82p-1
src/math/special/fma.h:765: bad fp exception: RU fmal(0x1.aa9eff070281cp-1022,0x1.fab05661b48ebp-2,0x1.cbe2af6c69c6ep-1022)=0x1.4f7ddbe122765p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:765: RU fmal(0x1.aa9eff070281cp-1022,0x1.fab05661b48ebp-2,0x1.cbe2af6c69c6ep-1022) want 0x1.4f7ddbe122765p-1021 got 0x1.9e529858da002p-1023 ulperr -4079820841418752.000 = -0x1.cfd26ap+51 + 0x1.ffe61ap-2
src/math/special/fma.h:766: bad fp exception: RU fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022)=0x1.e0e762ee2e7c6p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:766: RU fmal(0x1.758bbff0ec4bap-1022,0x1.a4a197f3fa424p-2,0x1.47761e8d142ddp-1022) want 0x1.e0e762ee2e7c6p-1022 got -0x1.e2fe0f96ebffep-1023 ulperr -12708595627982848.000 = -0x1.693334p+53 + 0x1.001e3p-1
src/math/special/fma.h:767: RU fmal(0x1.4dab43918a9a8p-1022,0x1.ed667442b4751p-2,0x1.3f25f82e02e3ep-1022) want 0x1.dfec0ee732dcbp-1022 got 0x1.6a41c4d18a001p-1022 ulperr -2069987942465536.000 = -0x1.d6a928p+50 + 0x1.ffa57p-2
src/math/special/fma.h:768: RU fmal(0x1.7943735951931p-1022,0x1.fa6a357c5c9ddp-2,0x1.0bed44b0b71b4p-1022) want 0x1.c6803a6059abfp-1022 got 0x1.0e970cce13401p-1022 ulperr -3235393763803136.000 = -0x1.6fd25ap+51 + 0x1.ffbc5ap-2
src/math/special/fma.h:769: bad fp exception: RU fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022)=0x1.8640492c4595ap-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:769: RU fmal(0x1.66c26bc29a5e8p-1022,0x1.3faed079f761ap-2,0x1.163ff906dd651p-1022) want 0x1.8640492c4595ap-1022 got -0x1.3271a1b37ffep-1027 ulperr -7033839486500864.000 = -0x1.8fd3d6p+52 + 0x1.000132p-1
src/math/special/fma.h:770: RU fmal(0x1.f52172c56bdf5p-1022,0x1.672b2de422734p-2,0x1.7bc5d708e5a34p-1022) want 0x1.15c5b95145cc7p-1021 got 0x1.3cf4f71d18801p-1021 ulperr 689341714137088.000 = 0x1.3979fp+49 + 0x1.ffb0c2p-2
src/math/special/fma.h:771: bad fp exception: RU fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022)=0x1.e7fa0dd76fbfp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:771: RU fmal(0x1.2f94e89aa7558p-1022,0x1.dfa6d30835f5ep-2,0x1.59c6b0d504cf9p-1022) want 0x1.e7fa0dd76fbfp-1022 got -0x1.60a5d541afffcp-1024 ulperr -10135538703007744.000 = -0x1.2011cp+53 + 0x1.000b06p-1
src/math/special/fma.h:772: bad fp exception: RU fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022)=0x1.b63a7f56fce2p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:772: RU fmal(0x1.6159897ae533cp-1022,0x1.f3b8892e3a3c8p-2,0x1.09ca702b7759p-1022) want 0x1.b63a7f56fce2p-1022 got -0x1.497a9bc51fffcp-1024 ulperr -9158460486713344.000 = -0x1.044c92p+53 + 0x1.000a4cp-1
src/math/special/fma.h:773: RU fmal(0x1.f73d5f4e81fd8p-1022,0x1.7ccff2642124ap-2,0x1.e7d836a0c8308p-1022) want 0x1.517f1763126d4p-1021 got -0x1.06939f3371fffp-1021 ulperr -10556596895612928.000 = -0x1.2c095ap+53 + 0x1.0020d2p-1
src/math/special/fma.h:774: RU fmal(0x1.b4328925969fbp-1022,0x1.8fa02832a22d5p-2,0x1.2084598e2f8c6p-1022) want 0x1.cabf43838dc52p-1022 got -0x1.7c61d65f0a3ffp-1022 ulperr -14762118276448256.000 = -0x1.a3908cp+53 + 0x1.002f8cp-1
src/math/special/fma.h:775: bad fp exception: RU fmal(0x1.66ee60a92676fp-1022,0x1.eddd2e7681ce4p-2,0x1.b81d57daeb3a7p-1022)=0x1.329c918ffb683p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:775: RU fmal(0x1.66ee60a92676fp-1022,0x1.eddd2e7681ce4p-2,0x1.b81d57daeb3a7p-1022) want 0x1.329c918ffb683p-1021 got 0x1.cd379885b8008p-1025 ulperr -4886854591578112.000 = -0x1.15c918p+52 + 0x1.fff8ccp-2
src/math/special/fma.h:776: bad fp exception: RU fmal(0x1.ff2737585895dp-1022,0x1.fb4bf3828ae4ap-2,0x1.4a866847740fp-1022)=0x1.23e07e4dbbeabp-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:776: RU fmal(0x1.ff2737585895dp-1022,0x1.fb4bf3828ae4ap-2,0x1.4a866847740fp-1022) want 0x1.23e07e4dbbeabp-1021 got 0x1.46c53f7571002p-1023 ulperr -3697601232764928.000 = -0x1.a45e5cp+51 + 0x1.ffeb94p-2
src/math/special/fma.h:777: bad fp exception: RU fmal(0x1.5e2008d269a86p-1022,0x1.507bbbe4d78eep-2,0x1.6220c6f83f636p-1022)=0x1.d52d9874f1c75p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:777: RU fmal(0x1.5e2008d269a86p-1022,0x1.507bbbe4d78eep-2,0x1.6220c6f83f636p-1022) want 0x1.d52d9874f1c75p-1022 got 0x1.eda0503c4a002p-1023 ulperr -3911886277967872.000 = -0x1.bcbaep+51 + 0x1.ffc24cp-2
src/math/special/fma.h:778: bad fp exception: RU fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022)=0x1.9864925e2fb1p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:778: RU fmal(0x1.ce7e2e5812d86p-1022,0x1.0e6689d092e5fp-2,0x1.1e43fd55c3458p-1022) want 0x1.9864925e2fb1p-1022 got -0x1.53ae580e8bff8p-1025 ulperr -7931489261977600.000 = -0x1.c2da5cp+52 + 0x1.00054ep-1
src/math/special/fma.h:779: RU fmal(0x1.7b353b81e793dp-1022,0x1.82b426f874c6dp-2,0x1.d92b19d21fd5cp-1022) want 0x1.342fb0c544a79p-1021 got 0x1.2af4c8aebe401p-1022 ulperr -2792024021401600.000 = -0x1.3d6a98p+51 + 0x1.ffdaa2p-2
src/math/special/fma.h:780: bad fp exception: RU fmal(0x1.5be667823370ap-1022,0x1.a8a99b163869bp-2,0x1.95456b68dc3bcp-1022)=0x1.12c638de03c71p-1021, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:780: RU fmal(0x1.5be667823370ap-1022,0x1.a8a99b163869bp-2,0x1.95456b68dc3bcp-1022) want 0x1.12c638de03c71p-1021 got 0x1.49af7fc787002p-1023 ulperr -3383908095754240.000 = -0x1.80b4bp+51 + 0x1.ffeb66p-2
src/math/special/fma.h:781: bad fp exception: RU fmal(0x1.17b0fc6c850e5p-1022,0x1.d1d0a4853c315p-2,0x1.36b79f7c0c24p-1022)=0x1.b5f2baff5635dp-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:781: RU fmal(0x1.17b0fc6c850e5p-1022,0x1.d1d0a4853c315p-2,0x1.36b79f7c0c24p-1022) want 0x1.b5f2baff5635dp-1022 got 0x1.6a1930472401p-1026 ulperr -7306333686595584.000 = -0x1.9f5126p+52 + 0x1.fffa58p-2
src/math/special/fma.h:782: RU fmal(0x1.bd97819bacfd8p-1022,0x1.2c25f267ba4eep-2,0x1.804b5204a3f3ap-1022) want 0x1.01739c190fd97p-1021 got 0x1.b9e166e6b4001p-1022 ulperr -642314640818176.000 = -0x1.241744p+49 + 0x1.ffc8c4p-2
src/math/special/fma.h:783: RU fmal(0x1.596577053873dp-1022,0x1.3562ab2d29949p-2,0x1.b3f1ee75db6e7p-1022) want 0x1.0e268a498009bp-1021 got 0x1.e8136bc159401p-1022 ulperr -459377991483392.000 = -0x1.a1cd46p+48 + 0x1.ffc2fep-2
src/math/special/fma.h:784: bad fp exception: RU fmal(0x1.3c7a68cf0f7b3p-1022,0x1.9a55c15b167bdp-2,0x1.7635b7b163c07p-1022)=0x1.f5073b93b7b81p-1022, want INEXACT got INEXACT|UNDERFLOW
src/math/special/fma.h:784: RU fmal(0x1.3c7a68cf0f7b3p-1022,0x1.9a55c15b167bdp-2,0x1.7635b7b163c07p-1022) want 0x1.f5073b93b7b81p-1022 got 0x1.75f9a97213802p-1023 ulperr -5524660993130496.000 = -0x1.3a0a66p+52 + 0x1.ffd14p-2
src/math/special/fma.h:785: RU fmal(0x1.5825164bc4068p-1022,0x1.dcbb6e5ff3245p-2,0x1.52fc3be0e84dap-1022) want 0x1.f334771c2dcfbp-1022 got 0x1.2b86ba6b02001p-1022 ulperr -3512783958179840.000 = -0x1.8f5b78p+51 + 0x1.ffb51ep-2
src/math/special/fma.h:786: RU fmal(0x1.139ea77b760ecp+1022,0x1.9b25f2fd017eap+2,-0x1.bc16788922b6fp+1023) want 0x1.b93aac527380fp+1023 got 0x1.c3ec4f2ee0001p+1022 ulperr -3787028357447680.000 = -0x1.ae8908p+51 + 0x1.ffc782p-2
src/math/special/fma.h:787: RU fmal(0x1.0e6f9c1657d7cp+1022,0x1.4d5c6b55ab5f1p+2,-0x1.e027dd5742e2cp+1023) want 0x1.c0538372b4bbfp+1022 got 0x1.54dede6de0001p+1021 ulperr -4888708943708160.000 = -0x1.15e414p+52 + 0x1.ffd564p-2
src/math/special/fma.h:788: RU fmal(0x1.1182524fa411cp+1022,0x1.a3dba56842d19p+2,-0x1.c1ad59474d71fp+1023) want 0x1.bf78969300a77p+1023 got 0x1.8651491ef0001p+1022 ulperr -4438724683235328.000 = -0x1.f89fe4p+51 + 0x1.ffcf36p-2
src/math/special/fma.h:789: RU fmal(0x1.1cbf4fb8ec82p+1022,0x1.5e32019a84fbbp+2,-0x1.985af08f32edep+1023) want 0x1.72af6bbad4a29p+1023 got 0x1.a68c1c1ec0001p+1023 ulperr 912367152005120.000 = 0x1.9ee584p+49 + 0x1.ff965cp-2
src/math/special/fma.h:790: RU fmal(0x1.311e25c6db346p+1022,0x1.4e30db6c4b51dp+2,-0x1.7681f7a9786a7p+1023) want 0x1.a61d29434fc14p+1023 got -0x1.791d1988fffffp+1017 ulperr -7529566222417920.000 = -0x1.ac019cp+52 + 0x1.0000bcp-1
src/math/special/fma.h:791: RU fmal(0x1.1201cf577052fp+1022,0x1.59730b2db7a16p+2,-0x1.56f1a64a078d5p+1023) want 0x1.8c8d801df34dap+1023 got -0x1.3048609fd7fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.001304p-1
src/math/special/fma.h:792: RU fmal(0x1.3e52335b76e81p+1022,0x1.4dbd56f857479p+2,-0x1.509340c11bd2ep+1023) want 0x1.ed6576837f654p+1023 got -0x1.e498d5441bfffp+1022 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.001e4ap-1
src/math/special/fma.h:793: RU fmal(0x1.18566b4f843cbp+1022,0x1.444fba10eaf29p+2,-0x1.f927beae57f0ap+1023) want 0x1.9a433b979655ap+1022 got 0x1.a048d2820c001p+1022 ulperr 105937230626816.000 = 0x1.8165bcp+46 + 0x1.004bf6p-1
src/math/special/fma.h:794: RU fmal(0x1.3fbe544fe1be8p+1022,0x1.2d2a5fda03639p+2,-0x1.007407dbfd03cp+1023) want 0x1.efdb644b613e6p+1023 got -0x1.e14223655ffffp+1022 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.001e14p-1
src/math/special/fma.h:795: RU fmal(0x1.263a0d3bc2e4p+1022,0x1.4cc198adbc651p+2,-0x1.734b1c1f7fdb8p+1023) want 0x1.899878afc0fa3p+1023 got 0x1.a136204480001p+1023 ulperr 415454233362432.000 = 0x1.79da7ap+48 + 0x1.ff97b2p-2
src/math/special/fma.h:796: RU fmal(0x1.5bf4aec8efc8ep+1022,0x1.555f0341516c9p+2,-0x1.c706408acd14cp+1023) want 0x1.d8f5e18b868bdp+1023 got 0x1.3e5679fdf8001p+1022 ulperr -5520279589617664.000 = -0x1.39caa4p+52 + 0x1.ffd836p-2
src/math/special/fma.h:797: RU fmal(0x1.1e57f1af78279p+1022,0x1.34bc0c7f082b3p+2,-0x1.497b92c1365edp+1023) want 0x1.692cb7ec68a94p+1023 got -0x1.c0a1f29b27fffp+1021 ulperr -8326959113175040.000 = -0x1.d95534p+52 + 0x1.000e06p-1
src/math/special/fma.h:798: RU fmal(0x1.1d9824cd73511p+1022,0x1.1d557ddfe47ffp+2,-0x1.556cdb1d20a72p+1023) want 0x1.2736a6b6e35f3p+1023 got 0x1.bc6f9c9778001p+1021 ulperr -3238800209739776.000 = -0x1.70357ep+51 + 0x1.ffe43ap-2
src/math/special/fma.h:799: RU fmal(0x1.1ff85a24aff31p+1022,0x1.39ab374b2680dp+2,-0x1.35e6b07b651b8p+1023) want 0x1.8bc7ce2087081p+1023 got 0x1.84b319bafa001p+1023 ulperr -124568110891008.000 = -0x1.c52d18p+46 + 0x1.ff9ed4p-2
src/math/special/fma.h:800: RU fmal(0x1.0449b3965227ep+1022,0x1.4430d4441f9f2p+2,-0x1.a6966c96307ep+1023) want 0x1.d94eda8c81772p+1022 got -0x1.992ed6b71ffffp+1021 ulperr -11925733685329920.000 = -0x1.52f322p+53 + 0x1.001992p-1
src/math/special/fma.h:801: RU fmal(0x1.3c91fa00fd0c7p+1022,0x1.1b6661c0b0303p+2,-0x1.f1f2846b64483p+1023) want 0x1.95eae0d2644d4p+1022 got 0x1.9985d8eaa0001p+1019 ulperr -6240425346072576.000 = -0x1.62ba24p+52 + 0x1.00799ap-1
src/math/special/fma.h:802: RU fmal(0x1.0979b36d46534p+1022,0x1.12fa205f41f7fp+2,-0x1.a83ecf4544a63p+1023) want 0x1.2420f34e2aa3dp+1022 got -0x1.335a0fe67ffffp+1019 ulperr -5815056080044032.000 = -0x1.4a8c34p+52 + 0x1.ff099ap-2
src/math/special/fma.h:803: RU fmal(0x1.4c89df582a599p+1022,0x1.55f3dc473ea8fp+2,-0x1.e35037292ddfp+1023) want 0x1.95109fdbc3772p+1023 got -0x1.afa3b29623fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.001afap-1
src/math/special/fma.h:804: RU fmal(0x1.35ee0a669c4fbp+1022,0x1.2263cb63f386ap+2,-0x1.449218ae35ac7p+1023) want 0x1.7a8ed977d817bp+1023 got 0x1.47da9ddfb8001p+1022 ulperr -3775828693352448.000 = -0x1.ad4314p+51 + 0x1.ffd704p-2
src/math/special/fma.h:805: RU fmal(0x1.117cc860f61bcp+1022,0x1.440985b25d994p+2,-0x1.d7a7d82000449p+1023) want 0x1.b960b7088e75p+1022 got 0x1.ddfba372c0001p+1022 ulperr 643964982001664.000 = 0x1.24d764p+49 + 0x1.00444p-1
src/math/special/fma.h:806: RU fmal(0x1.1e78a37be320fp+1022,0x1.0db0fce62287bp+2,-0x1.376337da5eb53p+1023) want 0x1.24326b9956dfcp+1023 got -0x1.d2881b3595fffp+1023 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.003a52p-1
src/math/special/fma.h:807: RU fmal(0x1.0c79b5c8331c2p+1022,0x1.0aba6ea746b5p+2,-0x1.c86f1fcaf0741p+1023) want 0x1.9c135bb2cff85p+1021 got -0x1.cc298babfffffp+1019 ulperr -9273125376098304.000 = -0x1.078edep+53 + 0x1.fe1cc2p-2
src/math/special/fma.h:808: RU fmal(0x1.556c4c072f272p+1022,0x1.347758d7d4eb5p+2,-0x1.c6fe4f24b248dp+1023) want 0x1.6fcc9f756df6ep+1023 got -0x1.f6f4c76597fffp+1022 ulperr -9007198717870080.000 = -0x1.fffffep+52 + 0x1.001f7p-1
src/math/special/fma.h:809: RU fmal(-0x1.e8349b891b2fp-1,0x1.4a6dec9b72578p-1,0x1.3b6151ce809ddp-1) want 0x1.3a62fe330b356p-11 got -0x1.d97120fffffffp-11 ulperr -13859626462216192.000 = -0x1.89ea0ep+53 + 0x1.003b2ep-1
src/math/special/fma.h:810: RU fmal(0x1.2996632ac7d74p-1,-0x1.bb3c58b654d94p-1,0x1.01a6660e64a31p-1) want 0x1.ed045bb956a8fp-15 got -0x1.070d61fffffffp-15 ulperr -13300911346548736.000 = -0x1.7a08dep+53 + 0x1.0aa0e2p-1
src/math/special/fma.h:811: RU fmal(-0x1.c602e894c1df8p-1,0x1.a1c980e7d3f94p-1,0x1.7271244b43386p-1) want -0x1.ba251fe026e5bp-15 got -0x1.af2b6cp-15 ulperr 193081311756288.000 = 0x1.5f367ep+47 + 0x1.fa6bcap-2
src/math/special/fma.h:812: RU fmal(-0x1.c84baf47e85cp-1,0x1.770b5149ef2ep-1,0x1.4d80f139320bap-1) want -0x1.79277433b9e23p-10 got 0x1.d4b6fp-11 ulperr 10757823629623296.000 = 0x1.31c178p+53 + 0x1.ffc56ap-2
src/math/special/fma.h:813: RU fmal(-0x1.36e667dcf9c6p-1,0x1.2591f82556b88p-1,0x1.2452a0f795f95p-1) want 0x1.c83c8e63c15ap-3 got -0x1.221ccbfffffffp-12 ulperr -8036166204915712.000 = -0x1.c8cd9cp+52 + 0x1.000012p-1
src/math/special/fma.h:814: RU fmal(0x1.88b2cede61e4cp-1,-0x1.71dcab5ad9e9p-3,0x1.32b27fea2ae97p-3) want 0x1.70461909b25e3p-7 got -0x1.affe57fffffffp-17 ulperr -6486162973655040.000 = -0x1.70b218p+52 + 0x1.00000ep-1
src/math/special/fma.h:815: RU fmal(0x1.8d1e44002c98p-3,-0x1.af9fdfb347834p-1,0x1.e280942fb4146p-4) want -0x1.761ac23896dfdp-5 got 0x1.0bec48p-14 ulperr 6590522625884160.000 = 0x1.76a0bap+52 + 0x1.ffffdep-2
src/math/special/fma.h:816: RU fmal(0x1.236e8cb9492c8p-1,-0x1.d37443a57f1c4p-1,0x1.ca10df801aabcp-4) want -0x1.a1a2cdf0138f9p-2 got 0x1.f090cab7p-5 ulperr 8439088898113536.000 = 0x1.dfb4e8p+52 + 0x1.fff07cp-2
src/math/special/fma.h:817: RU fmal(-0x1.6ad943e610fb8p-1,-0x1.cef92a7bb18bcp-1,0x1.f28587d8fb0ep-4) want 0x1.866b5204b9aedp-1 got -0x1.8c9eb9a6fffffp-5 ulperr -7304415446827008.000 = -0x1.9f353cp+52 + 0x1.00031ap-1
src/math/special/fma.h:818: RU fmal(-0x1.60a8569a5d894p-1,-0x1.ca07e29dd171cp-1,0x1.b6c475ace09ecp-4) want 0x1.72549291e2f7bp-1 got -0x1.b6fd181e7ffffp-5 ulperr -6997593720619008.000 = -0x1.8dc464p+52 + 0x1.00036ep-1
src/math/special/fma.h:819: RU fmal(0x1.d1962720d678cp-1,-0x1.4548ee45c4084p-1,0x1.f416ab193d75cp-4) want -0x1.d2929879dc853p-2 got 0x1.fc38e6f4p-8 ulperr 8347732259373056.000 = 0x1.da837ep+52 + 0x1.fffe04p-2
src/math/special/fma.h:820: RU fmal(-0x1.9ddcb295a7d64p-1,0x1.67fb3a2068a78p-1,0x1.da9cd4597fe0ap-4) want -0x1.cf4f6eb4fc5d8p-2 got 0x1.59da5512p-6 ulperr 8530910467063808.000 = 0x1.e4ed16p+52 + 0x1.fffa98p-2
src/math/special/fma.h:821: RU fmal(0x1.c00d16ed45b88p+0,0x1.c787eddda3664p+0,0x1.1e3e6f0cc1802p-5) want 0x1.931b8f379dcc4p+1 got -0x1.63fb63b7fffffp-6 ulperr -7140470102687744.000 = -0x1.95e384p+52 + 0x1.000058p-1
src/math/special/fma.h:822: RU fmal(0x1.19c2a2372c184p+0,-0x1.cb506961c19fp+0,0x1.db1abf3f7ba3ap-6) want -0x1.f21c0eab0bc18p+0 got 0x1.a29607ffffff8p-13 ulperr 8763735812341760.000 = 0x1.f22924p+52 + 0x1.fffffcp-2
src/math/special/fma.h:823: RU fmal(-0x1.3a263218ccd1cp+0,-0x1.e818d390df27cp+0,0x1.2a81ed71785f5p-5) want 0x1.3025ab0f63926p+1 got -0x1.bfdf0b9bfffffp-6 ulperr -5412167746584576.000 = -0x1.33a568p+52 + 0x1.00007p-1
src/math/special/fma.h:824: RU fmal(0x1.b0b041fbaca58p+0,-0x1.9d5f76d178e6p+0,0x1.0215c7bb84cf9p-6) want -0x1.5b52aec7ef4p+1 got 0x1.6be7a78p-7 ulperr 6135178246225920.000 = 0x1.5cbe98p+52 + 0x1.ffffa6p-2
src/math/special/fma.h:825: RU fmal(-0x1.377549d9a87f4p+0,-0x1.a13d4a03dd6d8p+0,0x1.f190388bc5cc6p-7) want 0x1.ff83bebbd6fe5p+0 got -0x1.e5a6a43ffffffp-9 ulperr -9015346807701504.000 = -0x1.003b48p+53 + 0x1.00001ep-1
src/math/special/fma.h:826: RU fmal(0x1.6a726c0762ac8p-1,-0x1.d32f2d30e483cp+0,0x1.f953eb70fbde6p-7) want -0x1.46c61b3070332p+0 got 0x1.e556e47fffffep-11 ulperr 5752835962568704.000 = 0x1.4702c8p+52 + 0x1.fffffp-2
src/math/special/fma.h:827: RU fmal(0x1.94cf2509d40cp-1,0x1.721976af6dfbp+0,0x1.f51a456921c3ep-7) want 0x1.28880842acc61p+0 got -0x1.effe1dfffffffp-8 ulperr -5250719389057024.000 = -0x1.2a7806p+52 + 0x1.00003ep-1
src/math/special/fma.h:828: RU fmal(0x1.b128eb0ad8728p-1,0x1.7682566a54268p+0,0x1.bd4122a074cafp-8) want 0x1.3e9469530e763p+0 got -0x1.6fe0c7bffffffp-9 ulperr -5617153650720768.000 = -0x1.3f4c58p+52 + 0x1.000016p-1
src/math/special/fma.h:829: RU fmal(0x1.c4ae75976e35cp+0,-0x1.11c329dd1160cp+0,0x1.9993f5e13c9bdp-8) want -0x1.e27d925b07cf1p+0 got 0x1.198edf6p-9 ulperr 8497737213411328.000 = 0x1.e30a5ap+52 + 0x1.ffffdcp-2
src/math/special/fma.h:830: RU fmal(-0x1.85f81f88fa3c4p+0,-0x1.17648a494fa18p-1,0x1.37d305113b48p-10) want 0x1.aa367b7490e58p-1 got -0x1.7a59ecffffffep-12 ulperr -7501265072291840.000 = -0x1.aa65c6p+52 + 0x1.000006p-1
src/math/special/fma.h:831: RU fmal(-0x1.311f2b4319efcp+0,0x1.abbb5272e3d18p-1,0x1.35841b7bdbcfep-10) want -0x1.fd337f24b39ep-1 got 0x1.4cbc317ffffffp-11 ulperr 8963678351130624.000 = 0x1.fd86bp+52 + 0x1.ffffecp-2
src/math/special/fma.h:832: RU fmal(0x1.ab94369a9a0dp-1,0x1.9d1e0e0aa3bacp+0,0x1.0a63ca87cfa78p-11) want 0x1.592173ee296b7p+0 got -0x1.fd8043ffffff8p-13 ulperr -6072696672616448.000 = -0x1.59315ep+52 + 0x1.000002p-1
src/math/special/fma.h:833: RN fmal(0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want 0x1.000000001p-1030 got 0x1p-1038 ulperr -17523466567680.000 = -0x1.fep+43 + -0x1p-28
src/math/special/fma.h:834: RN fmal(-0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want -0x1.000000003p-1030 got -0x1p-1038 ulperr 17523466567680.000 = 0x1.fep+43 + 0x1p-28
src/math/special/fma.h:835: RD fmal(0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want 0x1.000000001p-1030 got 0x1p-1038 ulperr -17523467616256.000 = -0x1.fe0002p+43 + -0x1p-28
src/math/special/fma.h:836: RD fmal(-0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want -0x1.00000000301p-1030 got -0x1.000000001p-1038 ulperr 17523466567680.000 = 0x1.fep+43 + -0x1p+0
src/math/special/fma.h:837: RU fmal(0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want 0x1.00000000101p-1030 got 0x1.000000001p-1038 ulperr -17523466567680.000 = -0x1.fep+43 + 0x1p+0
src/math/special/fma.h:838: RU fmal(-0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want -0x1.000000003p-1030 got -0x1p-1038 ulperr 17523467616256.000 = 0x1.fe0002p+43 + 0x1p-28
src/math/special/fma.h:839: RZ fmal(0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want 0x1.000000001p-1030 got 0x1p-1038 ulperr -17523466567680.000 = -0x1.fdfffep+43 + -0x1p-28
src/math/special/fma.h:840: RZ fmal(-0x1.000000001p-1000,0x1.000000001p-30,-0x1p-1066) want -0x1.000000003p-1030 got -0x1p-1038 ulperr 17523466567680.000 = 0x1.fdfffep+43 + 0x1p-28
src/math/special/fma.h:841: RN fmal(-0x1p-1000,0x1.000001p-74,0x1p-1022) want 0x1.ffffffffffffep-1023 got 0x1.ffep-1023 ulperr -1099511627776.000 = -0x1p+40 + 0x1p-24
src/math/special/fma.h:842: RU fmal(-0x1p-1000,0x1.000001p-74,0x1p-1022) want 0x1.ffffffffffffep-1023 got 0x1.ffe0000000002p-1023 ulperr -1099511562240.000 = -0x1.fffffep+39 + 0x1p-24
src/math/special/fma.h:843: RD fmal(-0x1p-1000,0x1.000001p-74,0x1p-1022) want 0x1.ffffffffffffcp-1023 got 0x1.ffep-1023 ulperr -1099511627776.000 = -0x1p+40 + -0x1.fffffep-1
src/math/special/fma.h:844: RZ fmal(-0x1p-1000,0x1.000001p-74,0x1p-1022) want 0x1.ffffffffffffcp-1023 got 0x1.ffep-1023 ulperr -1099511562240.000 = -0x1.fffffcp+39 + -0x1.fffffep-1
FAIL src/math/fmal.exe [status 1]
src/math/special/ilogb.h:1: bad fp exception: RN ilogb(0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogb.h:2: bad fp exception: RN ilogb(-0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogb.h:6: bad fp exception: RN ilogb(inf)=2147483647, want INVALID got 0
src/math/special/ilogb.h:7: bad fp exception: RN ilogb(-inf)=2147483647, want INVALID got 0
src/math/special/ilogb.h:8: bad fp exception: RN ilogb(nan)=-2147483648, want INVALID got 0
FAIL src/math/ilogb.exe [status 1]
src/math/special/ilogbf.h:1: bad fp exception: RN ilogbf(0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogbf.h:2: bad fp exception: RN ilogbf(-0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogbf.h:6: bad fp exception: RN ilogbf(inf)=2147483647, want INVALID got 0
src/math/special/ilogbf.h:7: bad fp exception: RN ilogbf(-inf)=2147483647, want INVALID got 0
src/math/special/ilogbf.h:8: bad fp exception: RN ilogbf(-nan)=-2147483648, want INVALID got 0
FAIL src/math/ilogbf.exe [status 1]
src/math/special/ilogb.h:1: bad fp exception: RN ilogbl(0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogb.h:2: bad fp exception: RN ilogbl(-0x0p+0)=-2147483648, want INVALID got 0
src/math/special/ilogb.h:6: bad fp exception: RN ilogbl(inf)=2147483647, want INVALID got 0
src/math/special/ilogb.h:7: bad fp exception: RN ilogbl(-inf)=2147483647, want INVALID got 0
src/math/special/ilogb.h:8: bad fp exception: RN ilogbl(nan)=-2147483648, want INVALID got 0
FAIL src/math/ilogbl.exe [status 1]
X src/math/special/j0.h:7: RN j0(-0x1.33d132fd04a92p+1) want 0x1.092b2a541a68ep-19 got 0x1.092b2a541b1ap-19 ulperr 2833.704 = 0x1.624p+11 + -0x1.2ebdbp-2
X src/math/special/j0.h:8: RN j0(-0x1.33d15297be06fp+1) want 0x1.5352913be3275p-26 got 0x1.5352913ddb41bp-26 ulperr 2064806.000 = 0x1.f81a6p+20 + 0x1.c281e2p-7
X src/math/special/j0.h:9: RN j0(0x1.33d152e971b4p+1) want -0x1.19b7921f03c8ep-54 got -0x1.00209921727cbp-54 ulperr 450179413049344.000 = 0x1.996f9p+48 + 0x1.ece5dp-5
X src/math/special/j0.h:10: RN j0(0x1.6148f5b2c2e45p+2) want -0x1.fbb40985f6e34p-56 got -0x1.ebcb069d486ccp-56 ulperr 279895217274880.000 = 0x1.fd205ep+47 + -0x1.1ac8a8p-2
X src/math/special/j0.h:11: RN j0(0x1.14eb56cccdecap+3) want -0x1.6e8eeb22e5818p-54 got -0x1.6d2a820627412p-54 ulperr 24492348801024.000 = 0x1.64691cp+44 + -0x1.63ab44p-2
X src/math/special/j0.h:12: RN j0(0x1.c071b22fbbafap+1023) want -0x1.a348b1f34dd1ap-526 got -0x1.a348b1f34d33dp-526 ulperr 2525.019 = 0x1.3bap+11 + 0x1.3153c2p-6
X src/math/special/j0.h:13: RN j0(0x1.f7350b1701ef7p+0) want 0x1.f32b3a3640292p-3 got 0x1.f32b3a3640296p-3 ulperr 3.947 = 0x1p+2 + -0x1.b3bad8p-5
X src/math/sanity/jn.h:8: RN jn(5, 0x1.1f9ef934745cbp-1) want 0x1.e274364abf2d5p-17 got 0x1.e274364abf2d2p-17, ulperr -2.504 = -0x1.8p+1 + 0x1.fbe5c8p-2
X src/math/sanity/jnf.h:1: RN jnf(-2, -0x1.0223ap+3) want -0x1.863726p-4 got -0x1.86372ap-4, ulperr -2.009 = -0x1p+1 + -0x1.28885p-7
X src/math/sanity/jnf.h:8: RN jnf(5, 0x1.1f9efap-1) want 0x1.e2743cp-17 got 0x1.e27442p-17, ulperr 2.537 = 0x1.8p+1 + -0x1.d9c372p-2
X src/math/sanity/jnf.h:10: RN jnf(7, -0x1.5b86eap-1) want -0x1.b39a9cp-24 got -0x1.b39a98p-24, ulperr 1.621 = 0x1p+1 + -0x1.83c12p-2
X src/math/special/lgamma.h:145: RN lgamma(-0x1.4p+1) want -0x1.ccbf9f5ed0f16p-5,-1 got -0x1.ccbf9f5ed0f2p-5,-1 ulperr -10.465 = -0x1.4p+3 + -0x1.dc4f24p-2
X src/math/sanity/lgammaf.h:3: RN lgammaf(-0x1.0c34b4p+3) want -0x1.46d732p+3,-1 got -0x1.46d736p+3,-1 ulperr -1.621 = -0x1p+1 + 0x1.83dafep-2
X src/math/sanity/lgammaf_r.h:3: RN lgammaf_r(-0x1.0c34b4p+3) want -0x1.46d732p+3,-1 got -0x1.46d736p+3,-1 ulperr -1.621 = -0x1p+1 + 0x1.83dafep-2
src/math/special/lgamma.h:145: RN lgammal(-0x1.4p+1) want -0x1.ccbf9f5ed0f16p-5,-1 got -0x1.ccbf9f5ed0f2p-5,-1 ulperr -10.465 = -0x1.4p+3 + -0x1.dc4f24p-2
FAIL src/math/lgammal.exe [status 1]
X src/math/crlibm/pow.h:13: bad fp exception: RN pow(0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:72: bad fp exception: RN pow(0x1p-1074,0x1p+0)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:73: bad fp exception: RN pow(0x1p-1042,0x1p+0)=0x1p-1042, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:75: bad fp exception: RN pow(-0x1p-1074,0x1p+0)=-0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:76: bad fp exception: RN pow(-0x1p-1042,0x1p+0)=-0x1p-1042, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:284: bad fp exception: RN pow(0x1p-1073,0x1p+0)=0x1p-1073, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:300: bad fp exception: RN pow(0x1p-1024,0x1p+0)=0x1p-1024, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:304: bad fp exception: RN pow(0x1p-1023,0x1p+0)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:310: bad fp exception: RN pow(0x1.ffffffffffffcp-1023,0x1p+0)=0x1.ffffffffffffcp-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:313: bad fp exception: RN pow(0x1.ffffffffffffep-1023,0x1p+0)=0x1.ffffffffffffep-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:338: bad fp exception: RN pow(0x1p-537,0x1p+1)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:437: bad fp exception: RN pow(0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:498: bad fp exception: RN pow(0x1p+350,-0x1.8p+1)=0x1p-1050, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:499: bad fp exception: RN pow(0x1p+700,-0x1.8p+0)=0x1p-1050, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:516: bad fp exception: RN pow(0x1p+1023,-0x1p+0)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:544: bad fp exception: RN pow(-0x1p-1073,0x1p+0)=-0x1p-1073, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:548: bad fp exception: RN pow(-0x1p-1024,0x1p+0)=-0x1p-1024, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:551: bad fp exception: RN pow(-0x1p-1023,0x1p+0)=-0x1p-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:557: bad fp exception: RN pow(-0x1.ffffffffffffcp-1023,0x1p+0)=-0x1.ffffffffffffcp-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:560: bad fp exception: RN pow(-0x1.ffffffffffffep-1023,0x1p+0)=-0x1.ffffffffffffep-1023, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:581: bad fp exception: RN pow(-0x1p-537,0x1p+1)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:655: bad fp exception: RN pow(-0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:695: bad fp exception: RN pow(-0x1p+350,-0x1.8p+1)=-0x1p-1050, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/pow.h:708: bad fp exception: RN pow(-0x1p+1023,-0x1p+0)=-0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/powf.h:103: bad fp exception: RU powf(0x1.fffffep+127,0x1p+0)=0x1.fffffep+127, want 0 got INEXACT|OVERFLOW
X src/math/ucb/powf.h:530: bad fp exception: RN powf(0x1.fffff8p-127,0x1p+0)=0x1.fffff8p-127, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/powf.h:533: bad fp exception: RN powf(0x1.fffffcp-127,0x1p+0)=0x1.fffffcp-127, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/powf.h:719: bad fp exception: RN powf(-0x1.fffff8p-127,0x1p+0)=-0x1.fffff8p-127, want 0 got INEXACT|UNDERFLOW
X src/math/ucb/powf.h:722: bad fp exception: RN powf(-0x1.fffffcp-127,0x1p+0)=-0x1.fffffcp-127, want 0 got INEXACT|UNDERFLOW
FAIL src/math/powf.exe [status 1]
src/math/crlibm/pow.h:13: bad fp exception: RN powl(0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:72: bad fp exception: RN powl(0x1p-1074,0x1p+0)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:73: bad fp exception: RN powl(0x1p-1042,0x1p+0)=0x1p-1042, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:75: bad fp exception: RN powl(-0x1p-1074,0x1p+0)=-0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:76: bad fp exception: RN powl(-0x1p-1042,0x1p+0)=-0x1p-1042, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:284: bad fp exception: RN powl(0x1p-1073,0x1p+0)=0x1p-1073, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:300: bad fp exception: RN powl(0x1p-1024,0x1p+0)=0x1p-1024, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:304: bad fp exception: RN powl(0x1p-1023,0x1p+0)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:310: bad fp exception: RN powl(0x1.ffffffffffffcp-1023,0x1p+0)=0x1.ffffffffffffcp-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:313: bad fp exception: RN powl(0x1.ffffffffffffep-1023,0x1p+0)=0x1.ffffffffffffep-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:338: bad fp exception: RN powl(0x1p-537,0x1p+1)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:437: bad fp exception: RN powl(0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:498: bad fp exception: RN powl(0x1p+350,-0x1.8p+1)=0x1p-1050, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:499: bad fp exception: RN powl(0x1p+700,-0x1.8p+0)=0x1p-1050, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:516: bad fp exception: RN powl(0x1p+1023,-0x1p+0)=0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:544: bad fp exception: RN powl(-0x1p-1073,0x1p+0)=-0x1p-1073, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:548: bad fp exception: RN powl(-0x1p-1024,0x1p+0)=-0x1p-1024, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:551: bad fp exception: RN powl(-0x1p-1023,0x1p+0)=-0x1p-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:557: bad fp exception: RN powl(-0x1.ffffffffffffcp-1023,0x1p+0)=-0x1.ffffffffffffcp-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:560: bad fp exception: RN powl(-0x1.ffffffffffffep-1023,0x1p+0)=-0x1.ffffffffffffep-1023, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:581: bad fp exception: RN powl(-0x1p-537,0x1p+1)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:655: bad fp exception: RN powl(-0x1p+1,-0x1.0c8p+10)=0x1p-1074, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:695: bad fp exception: RN powl(-0x1p+350,-0x1.8p+1)=-0x1p-1050, want 0 got INEXACT|UNDERFLOW
src/math/ucb/pow.h:708: bad fp exception: RN powl(-0x1p+1023,-0x1p+0)=-0x1p-1023, want 0 got INEXACT|UNDERFLOW
FAIL src/math/powl.exe [status 1]
X src/math/crlibm/sinh.h:84: RN sinh(0x1.d3e0d2f5d98d6p-2) want 0x1.e45428082fb8cp-2 got 0x1.e45428082fb8ap-2 ulperr -1.500 = -0x1p+1 + 0x1p-1
X src/math/crlibm/sinh.h:84: RN sinhl(0x1.d3e0d2f5d98d6p-2) want 0x1.e45428082fb8cp-2 got 0x1.e45428082fb8ap-2 ulperr -1.500 = -0x1p+1 + 0x1p-1
src/math/ucb/sqrt.h:47: bad fp exception: RN sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:48: bad fp exception: RZ sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:49: bad fp exception: RU sqrt(0x1.fffffffffffffp+1023)=0x1p+512, want INEXACT got 0
src/math/ucb/sqrt.h:49: RU sqrt(0x1.fffffffffffffp+1023) want 0x1p+512 got 0x1.fffffffffffffp+511 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrt.h:50: bad fp exception: RD sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:67: bad fp exception: RN sqrt(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:69: bad fp exception: RN sqrt(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:70: bad fp exception: RZ sqrt(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:72: bad fp exception: RZ sqrt(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:73: bad fp exception: RU sqrt(0x1.0000000000001p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:73: RU sqrt(0x1.0000000000001p+0) want 0x1.0000000000001p+0 got 0x1p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:75: bad fp exception: RU sqrt(0x1.fffffffffffffp-1)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:75: RU sqrt(0x1.fffffffffffffp-1) want 0x1p+0 got 0x1.fffffffffffffp-1 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrt.h:76: bad fp exception: RD sqrt(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:78: bad fp exception: RD sqrt(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:89: bad fp exception: RN sqrt(0x1.766bdb2b5006dp+1)=0x1.b5d6fec392e7dp+0, want INEXACT got 0
src/math/ucb/sqrt.h:90: bad fp exception: RN sqrt(0x1.b6546fb825911p+2)=0x1.4efb330ef0b43p+1, want INEXACT got 0
src/math/ucb/sqrt.h:91: bad fp exception: RN sqrt(0x1.e165309de7505p+2)=0x1.5f0d324d38bdp+1, want INEXACT got 0
src/math/ucb/sqrt.h:92: bad fp exception: RN sqrt(0x1.541dcfba96889p+0)=0x1.271370ec508dp+0, want INEXACT got 0
src/math/ucb/sqrt.h:93: bad fp exception: RN sqrt(0x1.754c3e27084ddp+1)=0x1.b52eb45df30b2p+0, want INEXACT got 0
src/math/ucb/sqrt.h:94: bad fp exception: RN sqrt(0x1.ebe1e1b093c41p+1)=0x1.f5d722e54e976p+0, want INEXACT got 0
src/math/ucb/sqrt.h:95: bad fp exception: RN sqrt(0x1.940d8d18455f5p+2)=0x1.419df976f692dp+1, want INEXACT got 0
src/math/ucb/sqrt.h:96: bad fp exception: RN sqrt(0x1.dae714a51b239p+2)=0x1.5cad1a5584b9ap+1, want INEXACT got 0
src/math/ucb/sqrt.h:97: bad fp exception: RN sqrt(0x1.a9f2d1079de4dp+1)=0x1.d2ff13bff7b67p+0, want INEXACT got 0
src/math/ucb/sqrt.h:98: bad fp exception: RN sqrt(0x1.57dd33103b871p-3)=0x1.a397d7b1e31f2p-2, want INEXACT got 0
src/math/ucb/sqrt.h:135: bad fp exception: RD sqrt(0x1.ffffffffffffep-1023)=0x1.ffffffffffffep-512, want INEXACT got 0
src/math/ucb/sqrt.h:135: RD sqrt(0x1.ffffffffffffep-1023) want 0x1.ffffffffffffep-512 got 0x1.fffffffffffffp-512 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:136: bad fp exception: RD sqrt(0x1.0000000000002p-1022)=0x1p-511, want INEXACT got 0
src/math/ucb/sqrt.h:136: RD sqrt(0x1.0000000000002p-1022) want 0x1p-511 got 0x1.0000000000001p-511 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:137: bad fp exception: RD sqrt(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:138: bad fp exception: RD sqrt(0x1.ffffffffffff8p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:138: RD sqrt(0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp-1 got 0x1.ffffffffffffcp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:139: bad fp exception: RD sqrt(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:140: bad fp exception: RD sqrt(0x1.ffffffffffffap-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:140: RD sqrt(0x1.ffffffffffffap-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffdp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:141: bad fp exception: RD sqrt(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:142: bad fp exception: RD sqrt(0x1.ffffffffffffcp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:142: RD sqrt(0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffep-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:143: bad fp exception: RD sqrt(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:144: bad fp exception: RD sqrt(0x1.ffffffffffffep-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:144: RD sqrt(0x1.ffffffffffffep-1) want 0x1.ffffffffffffep-1 got 0x1.fffffffffffffp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:145: bad fp exception: RD sqrt(0x1.0000000000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:145: RD sqrt(0x1.0000000000002p+0) want 0x1p+0 got 0x1.0000000000001p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:146: bad fp exception: RD sqrt(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:147: bad fp exception: RD sqrt(0x1.0000000000004p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:147: RD sqrt(0x1.0000000000004p+0) want 0x1.0000000000001p+0 got 0x1.0000000000002p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:148: bad fp exception: RD sqrt(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:149: bad fp exception: RD sqrt(0x1.0000000000006p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:149: RD sqrt(0x1.0000000000006p+0) want 0x1.0000000000002p+0 got 0x1.0000000000003p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:150: bad fp exception: RD sqrt(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:151: bad fp exception: RD sqrt(0x1.ffffffffffffep+1021)=0x1.ffffffffffffep+510, want INEXACT got 0
src/math/ucb/sqrt.h:151: RD sqrt(0x1.ffffffffffffep+1021) want 0x1.ffffffffffffep+510 got 0x1.fffffffffffffp+510 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:152: bad fp exception: RD sqrt(0x1.0000000000002p+1022)=0x1p+511, want INEXACT got 0
src/math/ucb/sqrt.h:152: RD sqrt(0x1.0000000000002p+1022) want 0x1p+511 got 0x1.0000000000001p+511 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:206: bad fp exception: RN sqrt(0x1.ffffffffffffep-1023)=0x1.fffffffffffffp-512, want INEXACT got 0
src/math/ucb/sqrt.h:207: bad fp exception: RN sqrt(0x1.0000000000002p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/ucb/sqrt.h:208: bad fp exception: RN sqrt(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:209: bad fp exception: RN sqrt(0x1.ffffffffffff8p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:210: bad fp exception: RN sqrt(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:211: bad fp exception: RN sqrt(0x1.ffffffffffffap-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:212: bad fp exception: RN sqrt(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:213: bad fp exception: RN sqrt(0x1.ffffffffffffcp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:214: bad fp exception: RN sqrt(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:215: bad fp exception: RN sqrt(0x1.ffffffffffffep-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:216: bad fp exception: RN sqrt(0x1.0000000000002p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:217: bad fp exception: RN sqrt(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:218: bad fp exception: RN sqrt(0x1.0000000000004p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:219: bad fp exception: RN sqrt(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:220: bad fp exception: RN sqrt(0x1.0000000000006p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:221: bad fp exception: RN sqrt(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:222: bad fp exception: RN sqrt(0x1.ffffffffffffep+1021)=0x1.fffffffffffffp+510, want INEXACT got 0
src/math/ucb/sqrt.h:223: bad fp exception: RN sqrt(0x1.0000000000002p+1022)=0x1.0000000000001p+511, want INEXACT got 0
src/math/ucb/sqrt.h:273: bad fp exception: RU sqrt(0x1.ffffffffffffep-1023)=0x1.fffffffffffffp-512, want INEXACT got 0
src/math/ucb/sqrt.h:274: bad fp exception: RU sqrt(0x1.0000000000002p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/ucb/sqrt.h:275: bad fp exception: RU sqrt(0x1.ffffffffffff7p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:275: RU sqrt(0x1.ffffffffffff7p-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffbp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:276: bad fp exception: RU sqrt(0x1.ffffffffffff8p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:277: bad fp exception: RU sqrt(0x1.ffffffffffff9p-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:277: RU sqrt(0x1.ffffffffffff9p-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffcp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:278: bad fp exception: RU sqrt(0x1.ffffffffffffap-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:279: bad fp exception: RU sqrt(0x1.ffffffffffffbp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:279: RU sqrt(0x1.ffffffffffffbp-1) want 0x1.ffffffffffffep-1 got 0x1.ffffffffffffdp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:280: bad fp exception: RU sqrt(0x1.ffffffffffffcp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:281: bad fp exception: RU sqrt(0x1.ffffffffffffdp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:281: RU sqrt(0x1.ffffffffffffdp-1) want 0x1.fffffffffffffp-1 got 0x1.ffffffffffffep-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:282: bad fp exception: RU sqrt(0x1.ffffffffffffep-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:283: bad fp exception: RU sqrt(0x1.0000000000002p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:284: bad fp exception: RU sqrt(0x1.0000000000003p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:284: RU sqrt(0x1.0000000000003p+0) want 0x1.0000000000002p+0 got 0x1.0000000000001p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:285: bad fp exception: RU sqrt(0x1.0000000000004p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:286: bad fp exception: RU sqrt(0x1.0000000000005p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:286: RU sqrt(0x1.0000000000005p+0) want 0x1.0000000000003p+0 got 0x1.0000000000002p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:287: bad fp exception: RU sqrt(0x1.0000000000006p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:288: bad fp exception: RU sqrt(0x1.0000000000007p+0)=0x1.0000000000004p+0, want INEXACT got 0
src/math/ucb/sqrt.h:288: RU sqrt(0x1.0000000000007p+0) want 0x1.0000000000004p+0 got 0x1.0000000000003p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:289: bad fp exception: RU sqrt(0x1.ffffffffffffep+1021)=0x1.fffffffffffffp+510, want INEXACT got 0
src/math/ucb/sqrt.h:290: bad fp exception: RU sqrt(0x1.0000000000002p+1022)=0x1.0000000000001p+511, want INEXACT got 0
src/math/ucb/sqrt.h:344: bad fp exception: RZ sqrt(0x1.ffffffffffffep-1023)=0x1.ffffffffffffep-512, want INEXACT got 0
src/math/ucb/sqrt.h:344: RZ sqrt(0x1.ffffffffffffep-1023) want 0x1.ffffffffffffep-512 got 0x1.fffffffffffffp-512 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:345: bad fp exception: RZ sqrt(0x1.0000000000002p-1022)=0x1p-511, want INEXACT got 0
src/math/ucb/sqrt.h:345: RZ sqrt(0x1.0000000000002p-1022) want 0x1p-511 got 0x1.0000000000001p-511 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:346: bad fp exception: RZ sqrt(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:347: bad fp exception: RZ sqrt(0x1.ffffffffffff8p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:347: RZ sqrt(0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp-1 got 0x1.ffffffffffffcp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:348: bad fp exception: RZ sqrt(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:349: bad fp exception: RZ sqrt(0x1.ffffffffffffap-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:349: RZ sqrt(0x1.ffffffffffffap-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffdp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:350: bad fp exception: RZ sqrt(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:351: bad fp exception: RZ sqrt(0x1.ffffffffffffcp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:351: RZ sqrt(0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffep-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:352: bad fp exception: RZ sqrt(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:353: bad fp exception: RZ sqrt(0x1.ffffffffffffep-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:353: RZ sqrt(0x1.ffffffffffffep-1) want 0x1.ffffffffffffep-1 got 0x1.fffffffffffffp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:354: bad fp exception: RZ sqrt(0x1.0000000000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:354: RZ sqrt(0x1.0000000000002p+0) want 0x1p+0 got 0x1.0000000000001p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:355: bad fp exception: RZ sqrt(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:356: bad fp exception: RZ sqrt(0x1.0000000000004p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:356: RZ sqrt(0x1.0000000000004p+0) want 0x1.0000000000001p+0 got 0x1.0000000000002p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:357: bad fp exception: RZ sqrt(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:358: bad fp exception: RZ sqrt(0x1.0000000000006p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:358: RZ sqrt(0x1.0000000000006p+0) want 0x1.0000000000002p+0 got 0x1.0000000000003p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:359: bad fp exception: RZ sqrt(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:360: bad fp exception: RZ sqrt(0x1.ffffffffffffep+1021)=0x1.ffffffffffffep+510, want INEXACT got 0
src/math/ucb/sqrt.h:360: RZ sqrt(0x1.ffffffffffffep+1021) want 0x1.ffffffffffffep+510 got 0x1.fffffffffffffp+510 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:361: bad fp exception: RZ sqrt(0x1.0000000000002p+1022)=0x1p+511, want INEXACT got 0
src/math/ucb/sqrt.h:361: RZ sqrt(0x1.0000000000002p+1022) want 0x1p+511 got 0x1.0000000000001p+511 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/sanity/sqrt.h:2: bad fp exception: RN sqrt(0x1.161868e18bc67p+2)=0x1.0ad1adc856f29p+1, want INEXACT got 0
src/math/sanity/sqrt.h:5: bad fp exception: RN sqrt(0x1.288bbb0d6a1e6p+3)=0x1.85a7d346e8c13p+1, want INEXACT got 0
src/math/sanity/sqrt.h:6: bad fp exception: RN sqrt(0x1.52efd0cd80497p-1)=0x1.a0937a0b92ccbp-1, want INEXACT got 0
src/math/sanity/sqrt.h:8: bad fp exception: RN sqrt(0x1.1f9ef934745cbp-1)=0x1.7fbf4b5a076bcp-1, want INEXACT got 0
src/math/sanity/sqrt.h:9: bad fp exception: RN sqrt(0x1.8c5db097f7442p-1)=0x1.c27ce94ff39c5p-1, want INEXACT got 0
src/math/special/sqrt.h:9: bad fp exception: RN sqrt(0x1p-1073)=0x1.6a09e667f3bcdp-537, want INEXACT got 0
src/math/special/sqrt.h:10: bad fp exception: RN sqrt(0x1.8p-1073)=0x1.bb67ae8584caap-537, want INEXACT got 0
src/math/special/sqrt.h:13: bad fp exception: RN sqrt(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/special/sqrt.h:14: bad fp exception: RN sqrt(0x1.fffffffffffffp+0)=0x1.6a09e667f3bccp+0, want INEXACT got 0
src/math/special/sqrt.h:15: bad fp exception: RN sqrt(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/special/sqrt.h:16: bad fp exception: RN sqrt(0x1.0000000000001p+1)=0x1.6a09e667f3bcdp+0, want INEXACT got 0
src/math/special/sqrt.h:17: bad fp exception: RN sqrt(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/special/sqrt.h:18: bad fp exception: RN sqrt(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/special/sqrt.h:20: bad fp exception: RN sqrt(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/special/sqrt.h:21: bad fp exception: RN sqrt(0x1.ffffffffffffbp+1023)=0x1.ffffffffffffdp+511, want INEXACT got 0
src/math/special/sqrt.h:22: bad fp exception: RN sqrt(0x1.ffffffffffff7p+1023)=0x1.ffffffffffffbp+511, want INEXACT got 0
src/math/special/sqrt.h:23: bad fp exception: RN sqrt(0x1.ffffffffffff3p+1023)=0x1.ffffffffffff9p+511, want INEXACT got 0
src/math/special/sqrt.h:24: bad fp exception: RN sqrt(0x1.fffffffffffefp+1023)=0x1.ffffffffffff7p+511, want INEXACT got 0
src/math/special/sqrt.h:25: bad fp exception: RN sqrt(0x1.fffffffffffebp+1023)=0x1.ffffffffffff5p+511, want INEXACT got 0
src/math/special/sqrt.h:26: bad fp exception: RN sqrt(0x1.fffffffffffe7p+1023)=0x1.ffffffffffff3p+511, want INEXACT got 0
src/math/special/sqrt.h:27: bad fp exception: RN sqrt(0x1.fffffffffffe3p+1023)=0x1.ffffffffffff1p+511, want INEXACT got 0
src/math/special/sqrt.h:28: bad fp exception: RN sqrt(0x1.fffffffffffdfp+1023)=0x1.fffffffffffefp+511, want INEXACT got 0
src/math/special/sqrt.h:29: bad fp exception: RN sqrt(0x1.fffffffffffdbp+1023)=0x1.fffffffffffedp+511, want INEXACT got 0
src/math/special/sqrt.h:30: bad fp exception: RN sqrt(0x1.fffffffffffd7p+1023)=0x1.fffffffffffebp+511, want INEXACT got 0
src/math/special/sqrt.h:31: bad fp exception: RN sqrt(0x1.0000000000003p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/special/sqrt.h:32: bad fp exception: RN sqrt(0x1.0000000000007p-1022)=0x1.0000000000003p-511, want INEXACT got 0
src/math/special/sqrt.h:33: bad fp exception: RN sqrt(0x1.000000000000bp-1022)=0x1.0000000000005p-511, want INEXACT got 0
src/math/special/sqrt.h:34: bad fp exception: RN sqrt(0x1.000000000000fp-1022)=0x1.0000000000007p-511, want INEXACT got 0
src/math/special/sqrt.h:35: bad fp exception: RN sqrt(0x1.0000000000013p-1022)=0x1.0000000000009p-511, want INEXACT got 0
src/math/special/sqrt.h:36: bad fp exception: RN sqrt(0x1.0000000000017p-1022)=0x1.000000000000bp-511, want INEXACT got 0
src/math/special/sqrt.h:37: bad fp exception: RN sqrt(0x1.000000000001bp-1022)=0x1.000000000000dp-511, want INEXACT got 0
src/math/special/sqrt.h:38: bad fp exception: RN sqrt(0x1.000000000001fp-1022)=0x1.000000000000fp-511, want INEXACT got 0
src/math/special/sqrt.h:39: bad fp exception: RN sqrt(0x1.0000000000023p-1022)=0x1.0000000000011p-511, want INEXACT got 0
src/math/special/sqrt.h:40: bad fp exception: RN sqrt(0x1.0000000000027p-1022)=0x1.0000000000013p-511, want INEXACT got 0
src/math/special/sqrt.h:41: bad fp exception: RN sqrt(0x1.000000000002bp-1022)=0x1.0000000000015p-511, want INEXACT got 0
src/math/special/sqrt.h:42: bad fp exception: RN sqrt(0x1.000000000002fp-1022)=0x1.0000000000017p-511, want INEXACT got 0
src/math/special/sqrt.h:43: bad fp exception: RN sqrt(0x1.0000000000033p-1022)=0x1.0000000000019p-511, want INEXACT got 0
src/math/special/sqrt.h:44: bad fp exception: RN sqrt(0x1.0000000000037p-1022)=0x1.000000000001bp-511, want INEXACT got 0
src/math/special/sqrt.h:45: bad fp exception: RN sqrt(0x1.7167bc36eaa3bp+6)=0x1.3384c7db650cdp+3, want INEXACT got 0
src/math/special/sqrt.h:46: bad fp exception: RN sqrt(0x1.7570994273ad7p+6)=0x1.353186e89b8ffp+3, want INEXACT got 0
src/math/special/sqrt.h:47: bad fp exception: RN sqrt(0x1.7dae969442fe6p+6)=0x1.389640fb18b75p+3, want INEXACT got 0
src/math/special/sqrt.h:48: bad fp exception: RN sqrt(0x1.7f8444fcf67e5p+6)=0x1.395659e94669fp+3, want INEXACT got 0
src/math/special/sqrt.h:49: bad fp exception: RN sqrt(0x1.8364650e63a54p+6)=0x1.3aea9efe1a3d7p+3, want INEXACT got 0
src/math/special/sqrt.h:50: bad fp exception: RN sqrt(0x1.85bedd274edd8p+6)=0x1.3bdf20c867057p+3, want INEXACT got 0
src/math/special/sqrt.h:51: bad fp exception: RN sqrt(0x1.8609cf496ab77p+6)=0x1.3bfd7e14b5eabp+3, want INEXACT got 0
src/math/special/sqrt.h:52: bad fp exception: RN sqrt(0x1.873849c70a375p+6)=0x1.3c77ed341d27fp+3, want INEXACT got 0
src/math/special/sqrt.h:53: bad fp exception: RN sqrt(0x1.8919c962cbaaep+6)=0x1.3d3a7113ee82fp+3, want INEXACT got 0
src/math/special/sqrt.h:54: bad fp exception: RN sqrt(0x1.8de4493e22dc6p+6)=0x1.3f27d448220c3p+3, want INEXACT got 0
src/math/special/sqrt.h:55: bad fp exception: RN sqrt(0x1.924829a17a288p+6)=0x1.40e9552eec28fp+3, want INEXACT got 0
src/math/special/sqrt.h:56: bad fp exception: RN sqrt(0x1.92702cd992f12p+6)=0x1.40f94a6fdfddfp+3, want INEXACT got 0
src/math/special/sqrt.h:57: bad fp exception: RN sqrt(0x1.92b763a8311fdp+6)=0x1.4115af614695fp+3, want INEXACT got 0
src/math/special/sqrt.h:58: bad fp exception: RN sqrt(0x1.947da013c7293p+6)=0x1.41ca91102940fp+3, want INEXACT got 0
src/math/special/sqrt.h:59: bad fp exception: RN sqrt(0x1.9536091c494d2p+6)=0x1.4213e334c77adp+3, want INEXACT got 0
src/math/special/sqrt.h:60: bad fp exception: RN sqrt(0x1.61b04c6p-1019)=0x1.a98b88f18b46dp-510, want INEXACT got 0
src/math/special/sqrt.h:61: bad fp exception: RN sqrt(0x1.93789f1p-1018)=0x1.4162ae43d5821p-509, want INEXACT got 0
src/math/special/sqrt.h:62: bad fp exception: RN sqrt(0x1.a1989b4p-1018)=0x1.46f6736eb44bbp-509, want INEXACT got 0
src/math/special/sqrt.h:63: bad fp exception: RN sqrt(0x1.f93bc9p-1018)=0x1.67a36ec403bafp-509, want INEXACT got 0
src/math/special/sqrt.h:64: bad fp exception: RN sqrt(0x1.2f675e3p-1017)=0x1.8a22ab6dcfee1p-509, want INEXACT got 0
src/math/special/sqrt.h:65: bad fp exception: RN sqrt(0x1.a158508p-1017)=0x1.ce418a96cf589p-509, want INEXACT got 0
src/math/special/sqrt.h:66: bad fp exception: RN sqrt(0x1.cd31f078p-1017)=0x1.e5ef1c65dccebp-509, want INEXACT got 0
src/math/special/sqrt.h:67: bad fp exception: RN sqrt(0x1.33b43b08p-1016)=0x1.18a9f607e1701p-508, want INEXACT got 0
src/math/special/sqrt.h:68: bad fp exception: RN sqrt(0x1.6e66a858p-1016)=0x1.324402a00b45fp-508, want INEXACT got 0
src/math/special/sqrt.h:69: bad fp exception: RN sqrt(0x1.8661cbf8p-1016)=0x1.3c212046bfdffp-508, want INEXACT got 0
src/math/special/sqrt.h:70: bad fp exception: RN sqrt(0x1.bbb221b4p-1016)=0x1.510681b939931p-508, want INEXACT got 0
src/math/special/sqrt.h:71: bad fp exception: RN sqrt(0x1.c4942f3cp-1016)=0x1.5461e59227ab5p-508, want INEXACT got 0
src/math/special/sqrt.h:72: bad fp exception: RN sqrt(0x1.dbb258c8p-1016)=0x1.5cf7b0f78d3afp-508, want INEXACT got 0
src/math/special/sqrt.h:73: bad fp exception: RN sqrt(0x1.57103ea4p-1015)=0x1.a31ab946d340bp-508, want INEXACT got 0
src/math/special/sqrt.h:74: bad fp exception: RN sqrt(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
FAIL src/math/sqrt.exe [status 1]
src/math/ucb/sqrtf.h:47: bad fp exception: RN sqrtf(0x1.fffffep+127)=0x1.fffffep+63, want INEXACT got 0
src/math/ucb/sqrtf.h:48: bad fp exception: RZ sqrtf(0x1.fffffep+127)=0x1.fffffep+63, want INEXACT got 0
src/math/ucb/sqrtf.h:49: bad fp exception: RU sqrtf(0x1.fffffep+127)=0x1p+64, want INEXACT got 0
src/math/ucb/sqrtf.h:49: RU sqrtf(0x1.fffffep+127) want 0x1p+64 got 0x1.fffffep+63 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrtf.h:50: bad fp exception: RD sqrtf(0x1.fffffep+127)=0x1.fffffep+63, want INEXACT got 0
src/math/ucb/sqrtf.h:67: bad fp exception: RN sqrtf(0x1.000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:69: bad fp exception: RN sqrtf(0x1.fffffep-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:70: bad fp exception: RZ sqrtf(0x1.000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:72: bad fp exception: RZ sqrtf(0x1.fffffep-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:73: bad fp exception: RU sqrtf(0x1.000002p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:73: RU sqrtf(0x1.000002p+0) want 0x1.000002p+0 got 0x1p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrtf.h:75: bad fp exception: RU sqrtf(0x1.fffffep-1)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:75: RU sqrtf(0x1.fffffep-1) want 0x1p+0 got 0x1.fffffep-1 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrtf.h:76: bad fp exception: RD sqrtf(0x1.000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:78: bad fp exception: RD sqrtf(0x1.fffffep-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:85: bad fp exception: RN sqrtf(0x1.766bdcp+1)=0x1.b5d7p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:86: bad fp exception: RN sqrtf(0x1.b6547p+2)=0x1.4efb34p+1, want INEXACT got 0
src/math/ucb/sqrtf.h:87: bad fp exception: RN sqrtf(0x1.e1653p+2)=0x1.5f0d32p+1, want INEXACT got 0
src/math/ucb/sqrtf.h:88: bad fp exception: RN sqrtf(0x1.541ddp+0)=0x1.271372p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:89: bad fp exception: RN sqrtf(0x1.754c3ep+1)=0x1.b52eb4p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:90: bad fp exception: RN sqrtf(0x1.ebe1e2p+1)=0x1.f5d724p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:91: bad fp exception: RN sqrtf(0x1.940d8ep+2)=0x1.419dfap+1, want INEXACT got 0
src/math/ucb/sqrtf.h:92: bad fp exception: RN sqrtf(0x1.dae714p+2)=0x1.5cad1ap+1, want INEXACT got 0
src/math/ucb/sqrtf.h:93: bad fp exception: RN sqrtf(0x1.a9f2d2p+1)=0x1.d2ff14p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:94: bad fp exception: RN sqrtf(0x1.57dd34p-3)=0x1.a397d8p-2, want INEXACT got 0
src/math/ucb/sqrtf.h:96: bad fp exception: RN sqrtf(0x1p-149)=0x1.6a09e6p-75, want INEXACT got 0
src/math/ucb/sqrtf.h:97: bad fp exception: RZ sqrtf(0x1p-149)=0x1.6a09e6p-75, want INEXACT got 0
src/math/ucb/sqrtf.h:98: bad fp exception: RU sqrtf(0x1p-149)=0x1.6a09e8p-75, want INEXACT got 0
src/math/ucb/sqrtf.h:98: RU sqrtf(0x1p-149) want 0x1.6a09e8p-75 got 0x1.6a09e6p-75 ulperr -0.203 = -0x1p+0 + 0x1.980c44p-1
src/math/ucb/sqrtf.h:99: bad fp exception: RD sqrtf(0x1p-149)=0x1.6a09e6p-75, want INEXACT got 0
src/math/ucb/sqrtf.h:142: bad fp exception: RD sqrtf(0x1.fffffcp-127)=0x1.fffffcp-64, want INEXACT got 0
src/math/ucb/sqrtf.h:142: RD sqrtf(0x1.fffffcp-127) want 0x1.fffffcp-64 got 0x1.fffffep-64 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:143: bad fp exception: RD sqrtf(0x1.000004p-126)=0x1p-63, want INEXACT got 0
src/math/ucb/sqrtf.h:143: RD sqrtf(0x1.000004p-126) want 0x1p-63 got 0x1.000002p-63 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:144: bad fp exception: RD sqrtf(0x1.ffffeep-1)=0x1.fffff6p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:145: bad fp exception: RD sqrtf(0x1.fffffp-1)=0x1.fffff6p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:145: RD sqrtf(0x1.fffffp-1) want 0x1.fffff6p-1 got 0x1.fffff8p-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffp-1
src/math/ucb/sqrtf.h:146: bad fp exception: RD sqrtf(0x1.fffff2p-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:147: bad fp exception: RD sqrtf(0x1.fffff4p-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:147: RD sqrtf(0x1.fffff4p-1) want 0x1.fffff8p-1 got 0x1.fffffap-1 ulperr 0.000 = 0x1p+0 + -0x1.fffff6p-1
src/math/ucb/sqrtf.h:148: bad fp exception: RD sqrtf(0x1.fffff6p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:149: bad fp exception: RD sqrtf(0x1.fffff8p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:149: RD sqrtf(0x1.fffff8p-1) want 0x1.fffffap-1 got 0x1.fffffcp-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffcp-1
src/math/ucb/sqrtf.h:150: bad fp exception: RD sqrtf(0x1.fffffap-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:151: bad fp exception: RD sqrtf(0x1.fffffcp-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:151: RD sqrtf(0x1.fffffcp-1) want 0x1.fffffcp-1 got 0x1.fffffep-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:152: bad fp exception: RD sqrtf(0x1.000004p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:152: RD sqrtf(0x1.000004p+0) want 0x1p+0 got 0x1.000002p+0 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:153: bad fp exception: RD sqrtf(0x1.000006p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:154: bad fp exception: RD sqrtf(0x1.000008p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:154: RD sqrtf(0x1.000008p+0) want 0x1.000002p+0 got 0x1.000004p+0 ulperr 0.000 = 0x1p+0 + -0x1.fffff8p-1
src/math/ucb/sqrtf.h:155: bad fp exception: RD sqrtf(0x1.00000ap+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:156: bad fp exception: RD sqrtf(0x1.00000cp+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:156: RD sqrtf(0x1.00000cp+0) want 0x1.000004p+0 got 0x1.000006p+0 ulperr 0.000 = 0x1p+0 + -0x1.ffffeep-1
src/math/ucb/sqrtf.h:157: bad fp exception: RD sqrtf(0x1.00000ep+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:158: bad fp exception: RD sqrtf(0x1.fffffcp+125)=0x1.fffffcp+62, want INEXACT got 0
src/math/ucb/sqrtf.h:158: RD sqrtf(0x1.fffffcp+125) want 0x1.fffffcp+62 got 0x1.fffffep+62 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:159: bad fp exception: RD sqrtf(0x1.000004p+126)=0x1p+63, want INEXACT got 0
src/math/ucb/sqrtf.h:159: RD sqrtf(0x1.000004p+126) want 0x1p+63 got 0x1.000002p+63 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:203: bad fp exception: RN sqrtf(0x1.fffffcp-127)=0x1.fffffep-64, want INEXACT got 0
src/math/ucb/sqrtf.h:204: bad fp exception: RN sqrtf(0x1.000004p-126)=0x1.000002p-63, want INEXACT got 0
src/math/ucb/sqrtf.h:205: bad fp exception: RN sqrtf(0x1.ffffeep-1)=0x1.fffff6p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:206: bad fp exception: RN sqrtf(0x1.fffffp-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:207: bad fp exception: RN sqrtf(0x1.fffff2p-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:208: bad fp exception: RN sqrtf(0x1.fffff4p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:209: bad fp exception: RN sqrtf(0x1.fffff6p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:210: bad fp exception: RN sqrtf(0x1.fffff8p-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:211: bad fp exception: RN sqrtf(0x1.fffffap-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:212: bad fp exception: RN sqrtf(0x1.fffffcp-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:213: bad fp exception: RN sqrtf(0x1.000004p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:214: bad fp exception: RN sqrtf(0x1.000006p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:215: bad fp exception: RN sqrtf(0x1.000008p+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:216: bad fp exception: RN sqrtf(0x1.00000ap+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:217: bad fp exception: RN sqrtf(0x1.00000cp+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:218: bad fp exception: RN sqrtf(0x1.00000ep+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:219: bad fp exception: RN sqrtf(0x1.fffffcp+125)=0x1.fffffep+62, want INEXACT got 0
src/math/ucb/sqrtf.h:220: bad fp exception: RN sqrtf(0x1.000004p+126)=0x1.000002p+63, want INEXACT got 0
src/math/ucb/sqrtf.h:264: bad fp exception: RU sqrtf(0x1.fffffcp-127)=0x1.fffffep-64, want INEXACT got 0
src/math/ucb/sqrtf.h:265: bad fp exception: RU sqrtf(0x1.000004p-126)=0x1.000002p-63, want INEXACT got 0
src/math/ucb/sqrtf.h:266: bad fp exception: RU sqrtf(0x1.ffffeep-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:266: RU sqrtf(0x1.ffffeep-1) want 0x1.fffff8p-1 got 0x1.fffff6p-1 ulperr -0.499 = -0x1p+0 + 0x1.000014p-1
src/math/ucb/sqrtf.h:267: bad fp exception: RU sqrtf(0x1.fffffp-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:268: bad fp exception: RU sqrtf(0x1.fffff2p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:268: RU sqrtf(0x1.fffff2p-1) want 0x1.fffffap-1 got 0x1.fffff8p-1 ulperr -0.499 = -0x1p+0 + 0x1.00000cp-1
src/math/ucb/sqrtf.h:269: bad fp exception: RU sqrtf(0x1.fffff4p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:270: bad fp exception: RU sqrtf(0x1.fffff6p-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:270: RU sqrtf(0x1.fffff6p-1) want 0x1.fffffcp-1 got 0x1.fffffap-1 ulperr -0.499 = -0x1p+0 + 0x1.000006p-1
src/math/ucb/sqrtf.h:271: bad fp exception: RU sqrtf(0x1.fffff8p-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:272: bad fp exception: RU sqrtf(0x1.fffffap-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:272: RU sqrtf(0x1.fffffap-1) want 0x1.fffffep-1 got 0x1.fffffcp-1 ulperr -0.499 = -0x1p+0 + 0x1.000002p-1
src/math/ucb/sqrtf.h:273: bad fp exception: RU sqrtf(0x1.fffffcp-1)=0x1.fffffep-1, want INEXACT got 0
src/math/ucb/sqrtf.h:274: bad fp exception: RU sqrtf(0x1.000004p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:275: bad fp exception: RU sqrtf(0x1.000006p+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:275: RU sqrtf(0x1.000006p+0) want 0x1.000004p+0 got 0x1.000002p+0 ulperr -0.499 = -0x1p+0 + 0x1.000004p-1
src/math/ucb/sqrtf.h:276: bad fp exception: RU sqrtf(0x1.000008p+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:277: bad fp exception: RU sqrtf(0x1.00000ap+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:277: RU sqrtf(0x1.00000ap+0) want 0x1.000006p+0 got 0x1.000004p+0 ulperr -0.499 = -0x1p+0 + 0x1.00000cp-1
src/math/ucb/sqrtf.h:278: bad fp exception: RU sqrtf(0x1.00000cp+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:279: bad fp exception: RU sqrtf(0x1.00000ep+0)=0x1.000008p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:279: RU sqrtf(0x1.00000ep+0) want 0x1.000008p+0 got 0x1.000006p+0 ulperr -0.499 = -0x1p+0 + 0x1.000018p-1
src/math/ucb/sqrtf.h:280: bad fp exception: RU sqrtf(0x1.fffffcp+125)=0x1.fffffep+62, want INEXACT got 0
src/math/ucb/sqrtf.h:281: bad fp exception: RU sqrtf(0x1.000004p+126)=0x1.000002p+63, want INEXACT got 0
src/math/ucb/sqrtf.h:325: bad fp exception: RZ sqrtf(0x1.fffffcp-127)=0x1.fffffcp-64, want INEXACT got 0
src/math/ucb/sqrtf.h:325: RZ sqrtf(0x1.fffffcp-127) want 0x1.fffffcp-64 got 0x1.fffffep-64 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:326: bad fp exception: RZ sqrtf(0x1.000004p-126)=0x1p-63, want INEXACT got 0
src/math/ucb/sqrtf.h:326: RZ sqrtf(0x1.000004p-126) want 0x1p-63 got 0x1.000002p-63 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:327: bad fp exception: RZ sqrtf(0x1.ffffeep-1)=0x1.fffff6p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:328: bad fp exception: RZ sqrtf(0x1.fffffp-1)=0x1.fffff6p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:328: RZ sqrtf(0x1.fffffp-1) want 0x1.fffff6p-1 got 0x1.fffff8p-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffp-1
src/math/ucb/sqrtf.h:329: bad fp exception: RZ sqrtf(0x1.fffff2p-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:330: bad fp exception: RZ sqrtf(0x1.fffff4p-1)=0x1.fffff8p-1, want INEXACT got 0
src/math/ucb/sqrtf.h:330: RZ sqrtf(0x1.fffff4p-1) want 0x1.fffff8p-1 got 0x1.fffffap-1 ulperr 0.000 = 0x1p+0 + -0x1.fffff6p-1
src/math/ucb/sqrtf.h:331: bad fp exception: RZ sqrtf(0x1.fffff6p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:332: bad fp exception: RZ sqrtf(0x1.fffff8p-1)=0x1.fffffap-1, want INEXACT got 0
src/math/ucb/sqrtf.h:332: RZ sqrtf(0x1.fffff8p-1) want 0x1.fffffap-1 got 0x1.fffffcp-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffcp-1
src/math/ucb/sqrtf.h:333: bad fp exception: RZ sqrtf(0x1.fffffap-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:334: bad fp exception: RZ sqrtf(0x1.fffffcp-1)=0x1.fffffcp-1, want INEXACT got 0
src/math/ucb/sqrtf.h:334: RZ sqrtf(0x1.fffffcp-1) want 0x1.fffffcp-1 got 0x1.fffffep-1 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:335: bad fp exception: RZ sqrtf(0x1.000004p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:335: RZ sqrtf(0x1.000004p+0) want 0x1p+0 got 0x1.000002p+0 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:336: bad fp exception: RZ sqrtf(0x1.000006p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:337: bad fp exception: RZ sqrtf(0x1.000008p+0)=0x1.000002p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:337: RZ sqrtf(0x1.000008p+0) want 0x1.000002p+0 got 0x1.000004p+0 ulperr 0.000 = 0x1p+0 + -0x1.fffff8p-1
src/math/ucb/sqrtf.h:338: bad fp exception: RZ sqrtf(0x1.00000ap+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:339: bad fp exception: RZ sqrtf(0x1.00000cp+0)=0x1.000004p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:339: RZ sqrtf(0x1.00000cp+0) want 0x1.000004p+0 got 0x1.000006p+0 ulperr 0.000 = 0x1p+0 + -0x1.ffffeep-1
src/math/ucb/sqrtf.h:340: bad fp exception: RZ sqrtf(0x1.00000ep+0)=0x1.000006p+0, want INEXACT got 0
src/math/ucb/sqrtf.h:341: bad fp exception: RZ sqrtf(0x1.fffffcp+125)=0x1.fffffcp+62, want INEXACT got 0
src/math/ucb/sqrtf.h:341: RZ sqrtf(0x1.fffffcp+125) want 0x1.fffffcp+62 got 0x1.fffffep+62 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/ucb/sqrtf.h:342: bad fp exception: RZ sqrtf(0x1.000004p+126)=0x1p+63, want INEXACT got 0
src/math/ucb/sqrtf.h:342: RZ sqrtf(0x1.000004p+126) want 0x1p+63 got 0x1.000002p+63 ulperr 0.000 = 0x1p+0 + -0x1.fffffep-1
src/math/sanity/sqrtf.h:2: bad fp exception: RN sqrtf(0x1.161868p+2)=0x1.0ad1aep+1, want INEXACT got 0
src/math/sanity/sqrtf.h:5: bad fp exception: RN sqrtf(0x1.288bbcp+3)=0x1.85a7d4p+1, want INEXACT got 0
src/math/sanity/sqrtf.h:6: bad fp exception: RN sqrtf(0x1.52efdp-1)=0x1.a0937ap-1, want INEXACT got 0
src/math/sanity/sqrtf.h:8: bad fp exception: RN sqrtf(0x1.1f9efap-1)=0x1.7fbf4cp-1, want INEXACT got 0
src/math/sanity/sqrtf.h:9: bad fp exception: RN sqrtf(0x1.8c5dbp-1)=0x1.c27ce8p-1, want INEXACT got 0
src/math/special/sqrtf.h:10: bad fp exception: RN sqrtf(0x1.8p-148)=0x1.3988e2p-74, want INEXACT got 0
src/math/special/sqrtf.h:11: bad fp exception: RN sqrtf(0x1p-149)=0x1.6a09e6p-75, want INEXACT got 0
src/math/special/sqrtf.h:13: bad fp exception: RN sqrtf(0x1.fffffep+127)=0x1.fffffep+63, want INEXACT got 0
src/math/special/sqrtf.h:15: bad fp exception: RN sqrtf(0x1.fffffcp-1)=0x1.fffffep-1, want INEXACT got 0
src/math/special/sqrtf.h:16: bad fp exception: RN sqrtf(0x1.fffffep-1)=0x1.fffffep-1, want INEXACT got 0
src/math/special/sqrtf.h:17: bad fp exception: RN sqrtf(0x1.fffffcp+0)=0x1.6a09e4p+0, want INEXACT got 0
src/math/special/sqrtf.h:18: bad fp exception: RN sqrtf(0x1.fffffep+0)=0x1.6a09e6p+0, want INEXACT got 0
src/math/special/sqrtf.h:19: bad fp exception: RN sqrtf(0x1.000002p+0)=0x1p+0, want INEXACT got 0
src/math/special/sqrtf.h:20: bad fp exception: RN sqrtf(0x1.000004p+0)=0x1.000002p+0, want INEXACT got 0
src/math/special/sqrtf.h:21: bad fp exception: RN sqrtf(0x1.000002p+1)=0x1.6a09e8p+0, want INEXACT got 0
src/math/special/sqrtf.h:22: bad fp exception: RN sqrtf(0x1.000004p+1)=0x1.6a09eap+0, want INEXACT got 0
FAIL src/math/sqrtf.exe [status 1]
src/math/ucb/sqrt.h:47: bad fp exception: RN sqrtl(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:48: bad fp exception: RZ sqrtl(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:49: bad fp exception: RU sqrtl(0x1.fffffffffffffp+1023)=0x1p+512, want INEXACT got 0
src/math/ucb/sqrt.h:49: RU sqrtl(0x1.fffffffffffffp+1023) want 0x1p+512 got 0x1.fffffffffffffp+511 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrt.h:50: bad fp exception: RD sqrtl(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/ucb/sqrt.h:67: bad fp exception: RN sqrtl(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:69: bad fp exception: RN sqrtl(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:70: bad fp exception: RZ sqrtl(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:72: bad fp exception: RZ sqrtl(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:73: bad fp exception: RU sqrtl(0x1.0000000000001p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:73: RU sqrtl(0x1.0000000000001p+0) want 0x1.0000000000001p+0 got 0x1p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:75: bad fp exception: RU sqrtl(0x1.fffffffffffffp-1)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:75: RU sqrtl(0x1.fffffffffffffp-1) want 0x1p+0 got 0x1.fffffffffffffp-1 ulperr -0.250 = -0x1p-1 + 0x1p-2
src/math/ucb/sqrt.h:76: bad fp exception: RD sqrtl(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:78: bad fp exception: RD sqrtl(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:89: bad fp exception: RN sqrtl(0x1.766bdb2b5006dp+1)=0x1.b5d6fec392e7dp+0, want INEXACT got 0
src/math/ucb/sqrt.h:90: bad fp exception: RN sqrtl(0x1.b6546fb825911p+2)=0x1.4efb330ef0b43p+1, want INEXACT got 0
src/math/ucb/sqrt.h:91: bad fp exception: RN sqrtl(0x1.e165309de7505p+2)=0x1.5f0d324d38bdp+1, want INEXACT got 0
src/math/ucb/sqrt.h:92: bad fp exception: RN sqrtl(0x1.541dcfba96889p+0)=0x1.271370ec508dp+0, want INEXACT got 0
src/math/ucb/sqrt.h:93: bad fp exception: RN sqrtl(0x1.754c3e27084ddp+1)=0x1.b52eb45df30b2p+0, want INEXACT got 0
src/math/ucb/sqrt.h:94: bad fp exception: RN sqrtl(0x1.ebe1e1b093c41p+1)=0x1.f5d722e54e976p+0, want INEXACT got 0
src/math/ucb/sqrt.h:95: bad fp exception: RN sqrtl(0x1.940d8d18455f5p+2)=0x1.419df976f692dp+1, want INEXACT got 0
src/math/ucb/sqrt.h:96: bad fp exception: RN sqrtl(0x1.dae714a51b239p+2)=0x1.5cad1a5584b9ap+1, want INEXACT got 0
src/math/ucb/sqrt.h:97: bad fp exception: RN sqrtl(0x1.a9f2d1079de4dp+1)=0x1.d2ff13bff7b67p+0, want INEXACT got 0
src/math/ucb/sqrt.h:98: bad fp exception: RN sqrtl(0x1.57dd33103b871p-3)=0x1.a397d7b1e31f2p-2, want INEXACT got 0
src/math/ucb/sqrt.h:135: bad fp exception: RD sqrtl(0x1.ffffffffffffep-1023)=0x1.ffffffffffffep-512, want INEXACT got 0
src/math/ucb/sqrt.h:135: RD sqrtl(0x1.ffffffffffffep-1023) want 0x1.ffffffffffffep-512 got 0x1.fffffffffffffp-512 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:136: bad fp exception: RD sqrtl(0x1.0000000000002p-1022)=0x1p-511, want INEXACT got 0
src/math/ucb/sqrt.h:136: RD sqrtl(0x1.0000000000002p-1022) want 0x1p-511 got 0x1.0000000000001p-511 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:137: bad fp exception: RD sqrtl(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:138: bad fp exception: RD sqrtl(0x1.ffffffffffff8p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:138: RD sqrtl(0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp-1 got 0x1.ffffffffffffcp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:139: bad fp exception: RD sqrtl(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:140: bad fp exception: RD sqrtl(0x1.ffffffffffffap-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:140: RD sqrtl(0x1.ffffffffffffap-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffdp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:141: bad fp exception: RD sqrtl(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:142: bad fp exception: RD sqrtl(0x1.ffffffffffffcp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:142: RD sqrtl(0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffep-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:143: bad fp exception: RD sqrtl(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:144: bad fp exception: RD sqrtl(0x1.ffffffffffffep-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:144: RD sqrtl(0x1.ffffffffffffep-1) want 0x1.ffffffffffffep-1 got 0x1.fffffffffffffp-1 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:145: bad fp exception: RD sqrtl(0x1.0000000000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:145: RD sqrtl(0x1.0000000000002p+0) want 0x1p+0 got 0x1.0000000000001p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:146: bad fp exception: RD sqrtl(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:147: bad fp exception: RD sqrtl(0x1.0000000000004p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:147: RD sqrtl(0x1.0000000000004p+0) want 0x1.0000000000001p+0 got 0x1.0000000000002p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:148: bad fp exception: RD sqrtl(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:149: bad fp exception: RD sqrtl(0x1.0000000000006p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:149: RD sqrtl(0x1.0000000000006p+0) want 0x1.0000000000002p+0 got 0x1.0000000000003p+0 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:150: bad fp exception: RD sqrtl(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:151: bad fp exception: RD sqrtl(0x1.ffffffffffffep+1021)=0x1.ffffffffffffep+510, want INEXACT got 0
src/math/ucb/sqrt.h:151: RD sqrtl(0x1.ffffffffffffep+1021) want 0x1.ffffffffffffep+510 got 0x1.fffffffffffffp+510 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:152: bad fp exception: RD sqrtl(0x1.0000000000002p+1022)=0x1p+511, want INEXACT got 0
src/math/ucb/sqrt.h:152: RD sqrtl(0x1.0000000000002p+1022) want 0x1p+511 got 0x1.0000000000001p+511 ulperr -0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:206: bad fp exception: RN sqrtl(0x1.ffffffffffffep-1023)=0x1.fffffffffffffp-512, want INEXACT got 0
src/math/ucb/sqrt.h:207: bad fp exception: RN sqrtl(0x1.0000000000002p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/ucb/sqrt.h:208: bad fp exception: RN sqrtl(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:209: bad fp exception: RN sqrtl(0x1.ffffffffffff8p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:210: bad fp exception: RN sqrtl(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:211: bad fp exception: RN sqrtl(0x1.ffffffffffffap-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:212: bad fp exception: RN sqrtl(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:213: bad fp exception: RN sqrtl(0x1.ffffffffffffcp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:214: bad fp exception: RN sqrtl(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:215: bad fp exception: RN sqrtl(0x1.ffffffffffffep-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:216: bad fp exception: RN sqrtl(0x1.0000000000002p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:217: bad fp exception: RN sqrtl(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:218: bad fp exception: RN sqrtl(0x1.0000000000004p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:219: bad fp exception: RN sqrtl(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:220: bad fp exception: RN sqrtl(0x1.0000000000006p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:221: bad fp exception: RN sqrtl(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:222: bad fp exception: RN sqrtl(0x1.ffffffffffffep+1021)=0x1.fffffffffffffp+510, want INEXACT got 0
src/math/ucb/sqrt.h:223: bad fp exception: RN sqrtl(0x1.0000000000002p+1022)=0x1.0000000000001p+511, want INEXACT got 0
src/math/ucb/sqrt.h:273: bad fp exception: RU sqrtl(0x1.ffffffffffffep-1023)=0x1.fffffffffffffp-512, want INEXACT got 0
src/math/ucb/sqrt.h:274: bad fp exception: RU sqrtl(0x1.0000000000002p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/ucb/sqrt.h:275: bad fp exception: RU sqrtl(0x1.ffffffffffff7p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:275: RU sqrtl(0x1.ffffffffffff7p-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffbp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:276: bad fp exception: RU sqrtl(0x1.ffffffffffff8p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:277: bad fp exception: RU sqrtl(0x1.ffffffffffff9p-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:277: RU sqrtl(0x1.ffffffffffff9p-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffcp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:278: bad fp exception: RU sqrtl(0x1.ffffffffffffap-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:279: bad fp exception: RU sqrtl(0x1.ffffffffffffbp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:279: RU sqrtl(0x1.ffffffffffffbp-1) want 0x1.ffffffffffffep-1 got 0x1.ffffffffffffdp-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:280: bad fp exception: RU sqrtl(0x1.ffffffffffffcp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:281: bad fp exception: RU sqrtl(0x1.ffffffffffffdp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:281: RU sqrtl(0x1.ffffffffffffdp-1) want 0x1.fffffffffffffp-1 got 0x1.ffffffffffffep-1 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:282: bad fp exception: RU sqrtl(0x1.ffffffffffffep-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/ucb/sqrt.h:283: bad fp exception: RU sqrtl(0x1.0000000000002p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:284: bad fp exception: RU sqrtl(0x1.0000000000003p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:284: RU sqrtl(0x1.0000000000003p+0) want 0x1.0000000000002p+0 got 0x1.0000000000001p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:285: bad fp exception: RU sqrtl(0x1.0000000000004p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:286: bad fp exception: RU sqrtl(0x1.0000000000005p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:286: RU sqrtl(0x1.0000000000005p+0) want 0x1.0000000000003p+0 got 0x1.0000000000002p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:287: bad fp exception: RU sqrtl(0x1.0000000000006p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:288: bad fp exception: RU sqrtl(0x1.0000000000007p+0)=0x1.0000000000004p+0, want INEXACT got 0
src/math/ucb/sqrt.h:288: RU sqrtl(0x1.0000000000007p+0) want 0x1.0000000000004p+0 got 0x1.0000000000003p+0 ulperr -0.500 = -0x1p+0 + 0x1p-1
src/math/ucb/sqrt.h:289: bad fp exception: RU sqrtl(0x1.ffffffffffffep+1021)=0x1.fffffffffffffp+510, want INEXACT got 0
src/math/ucb/sqrt.h:290: bad fp exception: RU sqrtl(0x1.0000000000002p+1022)=0x1.0000000000001p+511, want INEXACT got 0
src/math/ucb/sqrt.h:344: bad fp exception: RZ sqrtl(0x1.ffffffffffffep-1023)=0x1.ffffffffffffep-512, want INEXACT got 0
src/math/ucb/sqrt.h:344: RZ sqrtl(0x1.ffffffffffffep-1023) want 0x1.ffffffffffffep-512 got 0x1.fffffffffffffp-512 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:345: bad fp exception: RZ sqrtl(0x1.0000000000002p-1022)=0x1p-511, want INEXACT got 0
src/math/ucb/sqrt.h:345: RZ sqrtl(0x1.0000000000002p-1022) want 0x1p-511 got 0x1.0000000000001p-511 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:346: bad fp exception: RZ sqrtl(0x1.ffffffffffff7p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:347: bad fp exception: RZ sqrtl(0x1.ffffffffffff8p-1)=0x1.ffffffffffffbp-1, want INEXACT got 0
src/math/ucb/sqrt.h:347: RZ sqrtl(0x1.ffffffffffff8p-1) want 0x1.ffffffffffffbp-1 got 0x1.ffffffffffffcp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:348: bad fp exception: RZ sqrtl(0x1.ffffffffffff9p-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:349: bad fp exception: RZ sqrtl(0x1.ffffffffffffap-1)=0x1.ffffffffffffcp-1, want INEXACT got 0
src/math/ucb/sqrt.h:349: RZ sqrtl(0x1.ffffffffffffap-1) want 0x1.ffffffffffffcp-1 got 0x1.ffffffffffffdp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:350: bad fp exception: RZ sqrtl(0x1.ffffffffffffbp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:351: bad fp exception: RZ sqrtl(0x1.ffffffffffffcp-1)=0x1.ffffffffffffdp-1, want INEXACT got 0
src/math/ucb/sqrt.h:351: RZ sqrtl(0x1.ffffffffffffcp-1) want 0x1.ffffffffffffdp-1 got 0x1.ffffffffffffep-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:352: bad fp exception: RZ sqrtl(0x1.ffffffffffffdp-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:353: bad fp exception: RZ sqrtl(0x1.ffffffffffffep-1)=0x1.ffffffffffffep-1, want INEXACT got 0
src/math/ucb/sqrt.h:353: RZ sqrtl(0x1.ffffffffffffep-1) want 0x1.ffffffffffffep-1 got 0x1.fffffffffffffp-1 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:354: bad fp exception: RZ sqrtl(0x1.0000000000002p+0)=0x1p+0, want INEXACT got 0
src/math/ucb/sqrt.h:354: RZ sqrtl(0x1.0000000000002p+0) want 0x1p+0 got 0x1.0000000000001p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:355: bad fp exception: RZ sqrtl(0x1.0000000000003p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:356: bad fp exception: RZ sqrtl(0x1.0000000000004p+0)=0x1.0000000000001p+0, want INEXACT got 0
src/math/ucb/sqrt.h:356: RZ sqrtl(0x1.0000000000004p+0) want 0x1.0000000000001p+0 got 0x1.0000000000002p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:357: bad fp exception: RZ sqrtl(0x1.0000000000005p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:358: bad fp exception: RZ sqrtl(0x1.0000000000006p+0)=0x1.0000000000002p+0, want INEXACT got 0
src/math/ucb/sqrt.h:358: RZ sqrtl(0x1.0000000000006p+0) want 0x1.0000000000002p+0 got 0x1.0000000000003p+0 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:359: bad fp exception: RZ sqrtl(0x1.0000000000007p+0)=0x1.0000000000003p+0, want INEXACT got 0
src/math/ucb/sqrt.h:360: bad fp exception: RZ sqrtl(0x1.ffffffffffffep+1021)=0x1.ffffffffffffep+510, want INEXACT got 0
src/math/ucb/sqrt.h:360: RZ sqrtl(0x1.ffffffffffffep+1021) want 0x1.ffffffffffffep+510 got 0x1.fffffffffffffp+510 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/ucb/sqrt.h:361: bad fp exception: RZ sqrtl(0x1.0000000000002p+1022)=0x1p+511, want INEXACT got 0
src/math/ucb/sqrt.h:361: RZ sqrtl(0x1.0000000000002p+1022) want 0x1p+511 got 0x1.0000000000001p+511 ulperr 0.000 = 0x1p+0 + -0x1p+0
src/math/sanity/sqrt.h:2: bad fp exception: RN sqrtl(0x1.161868e18bc67p+2)=0x1.0ad1adc856f29p+1, want INEXACT got 0
src/math/sanity/sqrt.h:5: bad fp exception: RN sqrtl(0x1.288bbb0d6a1e6p+3)=0x1.85a7d346e8c13p+1, want INEXACT got 0
src/math/sanity/sqrt.h:6: bad fp exception: RN sqrtl(0x1.52efd0cd80497p-1)=0x1.a0937a0b92ccbp-1, want INEXACT got 0
src/math/sanity/sqrt.h:8: bad fp exception: RN sqrtl(0x1.1f9ef934745cbp-1)=0x1.7fbf4b5a076bcp-1, want INEXACT got 0
src/math/sanity/sqrt.h:9: bad fp exception: RN sqrtl(0x1.8c5db097f7442p-1)=0x1.c27ce94ff39c5p-1, want INEXACT got 0
src/math/special/sqrt.h:9: bad fp exception: RN sqrtl(0x1p-1073)=0x1.6a09e667f3bcdp-537, want INEXACT got 0
src/math/special/sqrt.h:10: bad fp exception: RN sqrtl(0x1.8p-1073)=0x1.bb67ae8584caap-537, want INEXACT got 0
src/math/special/sqrt.h:13: bad fp exception: RN sqrtl(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/special/sqrt.h:14: bad fp exception: RN sqrtl(0x1.fffffffffffffp+0)=0x1.6a09e667f3bccp+0, want INEXACT got 0
src/math/special/sqrt.h:15: bad fp exception: RN sqrtl(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/special/sqrt.h:16: bad fp exception: RN sqrtl(0x1.0000000000001p+1)=0x1.6a09e667f3bcdp+0, want INEXACT got 0
src/math/special/sqrt.h:17: bad fp exception: RN sqrtl(0x1.0000000000001p+0)=0x1p+0, want INEXACT got 0
src/math/special/sqrt.h:18: bad fp exception: RN sqrtl(0x1.fffffffffffffp-1)=0x1.fffffffffffffp-1, want INEXACT got 0
src/math/special/sqrt.h:20: bad fp exception: RN sqrtl(0x1.fffffffffffffp+1023)=0x1.fffffffffffffp+511, want INEXACT got 0
src/math/special/sqrt.h:21: bad fp exception: RN sqrtl(0x1.ffffffffffffbp+1023)=0x1.ffffffffffffdp+511, want INEXACT got 0
src/math/special/sqrt.h:22: bad fp exception: RN sqrtl(0x1.ffffffffffff7p+1023)=0x1.ffffffffffffbp+511, want INEXACT got 0
src/math/special/sqrt.h:23: bad fp exception: RN sqrtl(0x1.ffffffffffff3p+1023)=0x1.ffffffffffff9p+511, want INEXACT got 0
src/math/special/sqrt.h:24: bad fp exception: RN sqrtl(0x1.fffffffffffefp+1023)=0x1.ffffffffffff7p+511, want INEXACT got 0
src/math/special/sqrt.h:25: bad fp exception: RN sqrtl(0x1.fffffffffffebp+1023)=0x1.ffffffffffff5p+511, want INEXACT got 0
src/math/special/sqrt.h:26: bad fp exception: RN sqrtl(0x1.fffffffffffe7p+1023)=0x1.ffffffffffff3p+511, want INEXACT got 0
src/math/special/sqrt.h:27: bad fp exception: RN sqrtl(0x1.fffffffffffe3p+1023)=0x1.ffffffffffff1p+511, want INEXACT got 0
src/math/special/sqrt.h:28: bad fp exception: RN sqrtl(0x1.fffffffffffdfp+1023)=0x1.fffffffffffefp+511, want INEXACT got 0
src/math/special/sqrt.h:29: bad fp exception: RN sqrtl(0x1.fffffffffffdbp+1023)=0x1.fffffffffffedp+511, want INEXACT got 0
src/math/special/sqrt.h:30: bad fp exception: RN sqrtl(0x1.fffffffffffd7p+1023)=0x1.fffffffffffebp+511, want INEXACT got 0
src/math/special/sqrt.h:31: bad fp exception: RN sqrtl(0x1.0000000000003p-1022)=0x1.0000000000001p-511, want INEXACT got 0
src/math/special/sqrt.h:32: bad fp exception: RN sqrtl(0x1.0000000000007p-1022)=0x1.0000000000003p-511, want INEXACT got 0
src/math/special/sqrt.h:33: bad fp exception: RN sqrtl(0x1.000000000000bp-1022)=0x1.0000000000005p-511, want INEXACT got 0
src/math/special/sqrt.h:34: bad fp exception: RN sqrtl(0x1.000000000000fp-1022)=0x1.0000000000007p-511, want INEXACT got 0
src/math/special/sqrt.h:35: bad fp exception: RN sqrtl(0x1.0000000000013p-1022)=0x1.0000000000009p-511, want INEXACT got 0
src/math/special/sqrt.h:36: bad fp exception: RN sqrtl(0x1.0000000000017p-1022)=0x1.000000000000bp-511, want INEXACT got 0
src/math/special/sqrt.h:37: bad fp exception: RN sqrtl(0x1.000000000001bp-1022)=0x1.000000000000dp-511, want INEXACT got 0
src/math/special/sqrt.h:38: bad fp exception: RN sqrtl(0x1.000000000001fp-1022)=0x1.000000000000fp-511, want INEXACT got 0
src/math/special/sqrt.h:39: bad fp exception: RN sqrtl(0x1.0000000000023p-1022)=0x1.0000000000011p-511, want INEXACT got 0
src/math/special/sqrt.h:40: bad fp exception: RN sqrtl(0x1.0000000000027p-1022)=0x1.0000000000013p-511, want INEXACT got 0
src/math/special/sqrt.h:41: bad fp exception: RN sqrtl(0x1.000000000002bp-1022)=0x1.0000000000015p-511, want INEXACT got 0
src/math/special/sqrt.h:42: bad fp exception: RN sqrtl(0x1.000000000002fp-1022)=0x1.0000000000017p-511, want INEXACT got 0
src/math/special/sqrt.h:43: bad fp exception: RN sqrtl(0x1.0000000000033p-1022)=0x1.0000000000019p-511, want INEXACT got 0
src/math/special/sqrt.h:44: bad fp exception: RN sqrtl(0x1.0000000000037p-1022)=0x1.000000000001bp-511, want INEXACT got 0
src/math/special/sqrt.h:45: bad fp exception: RN sqrtl(0x1.7167bc36eaa3bp+6)=0x1.3384c7db650cdp+3, want INEXACT got 0
src/math/special/sqrt.h:46: bad fp exception: RN sqrtl(0x1.7570994273ad7p+6)=0x1.353186e89b8ffp+3, want INEXACT got 0
src/math/special/sqrt.h:47: bad fp exception: RN sqrtl(0x1.7dae969442fe6p+6)=0x1.389640fb18b75p+3, want INEXACT got 0
src/math/special/sqrt.h:48: bad fp exception: RN sqrtl(0x1.7f8444fcf67e5p+6)=0x1.395659e94669fp+3, want INEXACT got 0
src/math/special/sqrt.h:49: bad fp exception: RN sqrtl(0x1.8364650e63a54p+6)=0x1.3aea9efe1a3d7p+3, want INEXACT got 0
src/math/special/sqrt.h:50: bad fp exception: RN sqrtl(0x1.85bedd274edd8p+6)=0x1.3bdf20c867057p+3, want INEXACT got 0
src/math/special/sqrt.h:51: bad fp exception: RN sqrtl(0x1.8609cf496ab77p+6)=0x1.3bfd7e14b5eabp+3, want INEXACT got 0
src/math/special/sqrt.h:52: bad fp exception: RN sqrtl(0x1.873849c70a375p+6)=0x1.3c77ed341d27fp+3, want INEXACT got 0
src/math/special/sqrt.h:53: bad fp exception: RN sqrtl(0x1.8919c962cbaaep+6)=0x1.3d3a7113ee82fp+3, want INEXACT got 0
src/math/special/sqrt.h:54: bad fp exception: RN sqrtl(0x1.8de4493e22dc6p+6)=0x1.3f27d448220c3p+3, want INEXACT got 0
src/math/special/sqrt.h:55: bad fp exception: RN sqrtl(0x1.924829a17a288p+6)=0x1.40e9552eec28fp+3, want INEXACT got 0
src/math/special/sqrt.h:56: bad fp exception: RN sqrtl(0x1.92702cd992f12p+6)=0x1.40f94a6fdfddfp+3, want INEXACT got 0
src/math/special/sqrt.h:57: bad fp exception: RN sqrtl(0x1.92b763a8311fdp+6)=0x1.4115af614695fp+3, want INEXACT got 0
src/math/special/sqrt.h:58: bad fp exception: RN sqrtl(0x1.947da013c7293p+6)=0x1.41ca91102940fp+3, want INEXACT got 0
src/math/special/sqrt.h:59: bad fp exception: RN sqrtl(0x1.9536091c494d2p+6)=0x1.4213e334c77adp+3, want INEXACT got 0
src/math/special/sqrt.h:60: bad fp exception: RN sqrtl(0x1.61b04c6p-1019)=0x1.a98b88f18b46dp-510, want INEXACT got 0
src/math/special/sqrt.h:61: bad fp exception: RN sqrtl(0x1.93789f1p-1018)=0x1.4162ae43d5821p-509, want INEXACT got 0
src/math/special/sqrt.h:62: bad fp exception: RN sqrtl(0x1.a1989b4p-1018)=0x1.46f6736eb44bbp-509, want INEXACT got 0
src/math/special/sqrt.h:63: bad fp exception: RN sqrtl(0x1.f93bc9p-1018)=0x1.67a36ec403bafp-509, want INEXACT got 0
src/math/special/sqrt.h:64: bad fp exception: RN sqrtl(0x1.2f675e3p-1017)=0x1.8a22ab6dcfee1p-509, want INEXACT got 0
src/math/special/sqrt.h:65: bad fp exception: RN sqrtl(0x1.a158508p-1017)=0x1.ce418a96cf589p-509, want INEXACT got 0
src/math/special/sqrt.h:66: bad fp exception: RN sqrtl(0x1.cd31f078p-1017)=0x1.e5ef1c65dccebp-509, want INEXACT got 0
src/math/special/sqrt.h:67: bad fp exception: RN sqrtl(0x1.33b43b08p-1016)=0x1.18a9f607e1701p-508, want INEXACT got 0
src/math/special/sqrt.h:68: bad fp exception: RN sqrtl(0x1.6e66a858p-1016)=0x1.324402a00b45fp-508, want INEXACT got 0
src/math/special/sqrt.h:69: bad fp exception: RN sqrtl(0x1.8661cbf8p-1016)=0x1.3c212046bfdffp-508, want INEXACT got 0
src/math/special/sqrt.h:70: bad fp exception: RN sqrtl(0x1.bbb221b4p-1016)=0x1.510681b939931p-508, want INEXACT got 0
src/math/special/sqrt.h:71: bad fp exception: RN sqrtl(0x1.c4942f3cp-1016)=0x1.5461e59227ab5p-508, want INEXACT got 0
src/math/special/sqrt.h:72: bad fp exception: RN sqrtl(0x1.dbb258c8p-1016)=0x1.5cf7b0f78d3afp-508, want INEXACT got 0
src/math/special/sqrt.h:73: bad fp exception: RN sqrtl(0x1.57103ea4p-1015)=0x1.a31ab946d340bp-508, want INEXACT got 0
src/math/special/sqrt.h:74: bad fp exception: RN sqrtl(0x1.9b294f88p-1015)=0x1.cad197e28e85bp-508, want INEXACT got 0
FAIL src/math/sqrtl.exe [status 1]
X src/math/sanity/tgamma.h:4: RN tgamma(-0x1.a206f0a19dcc4p+2) want -0x1.9fd0c1ce12f14p-10 got -0x1.9fd0c1ce12f12p-10 ulperr 1.597 = 0x1p+1 + -0x1.9c637p-2
X src/math/sanity/tgamma.h:7: RN tgamma(-0x1.a05cc754481d1p-2) want -0x1.d9a22b2f3f253p+1 got -0x1.d9a22b2f3f251p+1 ulperr 1.674 = 0x1p+1 + -0x1.4d79f4p-2
src/math/special/tgamma.h:5: bad fp exception: RN tgamma(-0x1p+0)=nan, want INVALID got 0
src/math/special/tgamma.h:7: bad fp exception: RN tgamma(-0x1p+1)=nan, want INVALID got 0
X src/math/special/tgamma.h:47: RN tgamma(0x1p-53) want 0x1.fffffffffffffp+52 got 0x1.ffffffffffffdp+52 ulperr -2.423 = -0x1p+1 + -0x1.b0ee6p-2
X src/math/special/tgamma.h:60: RN tgamma(-0x1.0000000000001p+0) want 0x1.fffffffffffffp+51 got 0x1.ffffffffffffdp+51 ulperr -2.154 = -0x1p+1 + -0x1.3c467ep-3
X src/math/special/tgamma.h:62: RN tgamma(-0x1.0000000000003p+0) want 0x1.5555555555554p+50 got 0x1.5555555555552p+50 ulperr -1.642 = -0x1p+1 + 0x1.6e642cp-2
X src/math/special/tgamma.h:66: RN tgamma(-0x1.ffffffffffffep+0) want 0x1.0000000000002p+50 got 0x1.0000000000004p+50 ulperr 2.154 = 0x1p+1 + 0x1.3c467ep-3
X src/math/special/tgamma.h:68: RN tgamma(-0x1.0000000000001p+1) want -0x1.ffffffffffffcp+49 got -0x1.ffffffffffff7p+49 ulperr 5.309 = 0x1.4p+2 + 0x1.3c467ep-2
X src/math/special/tgamma.h:72: RN tgamma(-0x1.7fffffffffffdp+1) want -0x1.c71c71c71c72ap+46 got -0x1.c71c71c71c72cp+46 ulperr -2.157 = -0x1p+1 + -0x1.4177f6p-3
X src/math/special/tgamma.h:82: RN tgamma(-0x1.59fffffffffffp+7) want -0x1.46b1fa841aaa6p-997 got -0x1.46b1fa841aaa8p-997 ulperr -1.801 = -0x1p+1 + 0x1.979e28p-3
X src/math/special/tgamma.h:83: RN tgamma(-0x1.5a00000000001p+7) want 0x1.46b1fa841a412p-997 got 0x1.46b1fa841a41p-997 ulperr -1.700 = -0x1p+1 + 0x1.333de2p-2
X src/math/special/tgamma.h:84: RN tgamma(-0x1.5bfffffffffffp+7) want 0x1.e0a7b14f99fdbp-1005 got 0x1.e0a7b14f99fddp-1005 ulperr 1.579 = 0x1p+1 + -0x1.af416ap-2
X src/math/special/tgamma.h:85: RN tgamma(-0x1.5c00000000001p+7) want -0x1.e0a7b14f9962ap-1005 got -0x1.e0a7b14f9962cp-1005 ulperr -1.685 = -0x1p+1 + 0x1.42ddc4p-2
X src/math/special/tgamma.h:88: RN tgamma(-0x1.5ffffffffffffp+7) want 0x1.ff5df5f533fd3p-1020 got 0x1.ff5df5f533fd6p-1020 ulperr 2.513 = 0x1.8p+1 + -0x1.f234a4p-2
X src/math/special/tgamma.h:119: RN tgamma(-0x1.8p+0) want 0x1.2e7fb0bcdf4f2p+1 got 0x1.2e7fb0bcdf4fp+1 ulperr -1.770 = -0x1p+1 + 0x1.d7697p-3
X src/math/special/tgamma.h:136: RN tgamma(-0x1.02p+6) want -0x1.912276590832ep-298 got -0x1.912276590833p-298 ulperr -1.662 = -0x1p+1 + 0x1.59f79ap-2
X src/math/special/tgamma.h:141: RN tgamma(-0x1.55p+7) want -0x1.7d2374dfcda7ap-1022 got -0x1.7d2374dfcda78p-1022 ulperr 1.778 = 0x1p+1 + -0x1.c68fa4p-3
FAIL src/math/tgamma.exe [status 1]
src/math/special/tgammaf.h:4: bad fp exception: RN tgammaf(-0x1p+0)=-nan, want INVALID got 0
src/math/special/tgammaf.h:6: bad fp exception: RN tgammaf(-0x1p+1)=-nan, want INVALID got 0
FAIL src/math/tgammaf.exe [status 1]
src/math/special/tgamma.h:5: bad fp exception: RN tgammal(-0x1p+0)=nan, want INVALID got 0
src/math/special/tgamma.h:7: bad fp exception: RN tgammal(-0x1p+1)=nan, want INVALID got 0
src/math/special/tgamma.h:47: RN tgammal(0x1p-53) want 0x1.fffffffffffffp+52 got 0x1.ffffffffffffdp+52 ulperr -2.423 = -0x1p+1 + -0x1.b0ee6p-2
src/math/special/tgamma.h:60: RN tgammal(-0x1.0000000000001p+0) want 0x1.fffffffffffffp+51 got 0x1.ffffffffffffdp+51 ulperr -2.154 = -0x1p+1 + -0x1.3c467ep-3
src/math/special/tgamma.h:66: RN tgammal(-0x1.ffffffffffffep+0) want 0x1.0000000000002p+50 got 0x1.0000000000004p+50 ulperr 2.154 = 0x1p+1 + 0x1.3c467ep-3
src/math/special/tgamma.h:68: RN tgammal(-0x1.0000000000001p+1) want -0x1.ffffffffffffcp+49 got -0x1.ffffffffffff7p+49 ulperr 5.309 = 0x1.4p+2 + 0x1.3c467ep-2
src/math/special/tgamma.h:72: RN tgammal(-0x1.7fffffffffffdp+1) want -0x1.c71c71c71c72ap+46 got -0x1.c71c71c71c72cp+46 ulperr -2.157 = -0x1p+1 + -0x1.4177f6p-3
src/math/special/tgamma.h:88: RN tgammal(-0x1.5ffffffffffffp+7) want 0x1.ff5df5f533fd3p-1020 got 0x1.ff5df5f533fd6p-1020 ulperr 2.513 = 0x1.8p+1 + -0x1.f234a4p-2
FAIL src/math/tgammal.exe [status 1]
src/math/sanity/y0.h:1: bad fp exception: RN y0(-0x1.02239f3c6a8f1p+3)=nan, want INVALID got 0
src/math/sanity/y0.h:3: bad fp exception: RN y0(-0x1.0c34b3e01e6e7p+3)=nan, want INVALID got 0
src/math/sanity/y0.h:4: bad fp exception: RN y0(-0x1.a206f0a19dcc4p+2)=nan, want INVALID got 0
src/math/sanity/y0.h:7: bad fp exception: RN y0(-0x1.a05cc754481d1p-2)=nan, want INVALID got 0
src/math/sanity/y0.h:10: bad fp exception: RN y0(-0x1.5b86ea8118a0ep-1)=nan, want INVALID got 0
src/math/special/y0.h:1: bad fp exception: RN y0(0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y0.h:2: bad fp exception: RN y0(-0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y0.h:3: bad fp exception: RN y0(-0x1p+0)=nan, want INVALID got 0
src/math/special/y0.h:5: bad fp exception: RN y0(-inf)=nan, want INVALID got 0
X src/math/special/y0.h:8: RN y0(0x1.c982eb8d417eap-1) want -0x1.af74bfa0f1304p-56 got -0x1p-55 ulperr -1416944204906496.000 = -0x1.422d02p+50 + 0x1.11721cp-2
X src/math/special/y0.h:9: RN y0(0x1.c982eb8d417ebp-1) want 0x1.5666419c0f3c9p-54 got 0x1.2p-54 ulperr -957005015547904.000 = -0x1.b3320cp+49 + 0x1.dc02a8p-2
X src/math/special/y0.h:10: RN y0(0x1.fa9534d98569bp+1) want 0x1.384a000f3fcecp-53 got 0x1.3004a968fceadp-53 ulperr -145502385471488.000 = -0x1.08aad4p+47 + 0x1.58e17p-6
X src/math/special/y0.h:11: RN y0(0x1.fa9534d98569cp+1) want -0x1.8fa8956b4b481p-55 got -0x1.8f4eb84cc2a33p-55 ulperr 6175389646848.000 = 0x1.67747ap+42 + 0x1.54cfbep-2
X src/math/special/y0.h:12: RN y0(0x1.c581dc4e72102p+2) want -0x1.14bb186dc408dp-52 got -0x1.16eb61aad4cacp-52 ulperr -38502565675008.000 = -0x1.18249ep+45 + -0x1.163cfp-2
X src/math/special/y0.h:13: RN y0(0x1.c581dc4e72103p+2) want 0x1.e91b198d39ce2p-56 got 0x1.dac1abb064c09p-56 ulperr -252436132397056.000 = -0x1.cb2dbcp+47 + -0x1.ee1b6ep-2
FAIL src/math/y0.exe [status 1]
src/math/sanity/y0f.h:1: bad fp exception: RN y0f(-0x1.0223ap+3)=-nan, want INVALID got 0
X src/math/sanity/y0f.h:2: RN y0f(0x1.161868p+2) want -0x1.293dbep-3 got -0x1.293dc2p-3 ulperr -1.910 = -0x1p+1 + 0x1.6ffc42p-4
src/math/sanity/y0f.h:3: bad fp exception: RN y0f(-0x1.0c34b4p+3)=-nan, want INVALID got 0
src/math/sanity/y0f.h:4: bad fp exception: RN y0f(-0x1.a206fp+2)=-nan, want INVALID got 0
src/math/sanity/y0f.h:7: bad fp exception: RN y0f(-0x1.a05cc8p-2)=-nan, want INVALID got 0
src/math/sanity/y0f.h:10: bad fp exception: RN y0f(-0x1.5b86eap-1)=-nan, want INVALID got 0
src/math/special/y0f.h:1: bad fp exception: RN y0f(0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y0f.h:2: bad fp exception: RN y0f(-0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y0f.h:3: bad fp exception: RN y0f(-0x1p+0)=-nan, want INVALID got 0
src/math/special/y0f.h:5: bad fp exception: RN y0f(-inf)=-nan, want INVALID got 0
X src/math/special/y0f.h:7: RN y0f(0x1.0c4a3ap+0) want 0x1.ff138ep-4 got 0x1.ff1386p-4 ulperr -4.180 = -0x1.fffffep+1 + -0x1.71585ap-3
X src/math/special/y0f.h:8: RN y0f(0x1.8ae5d4p-1) want -0x1.d88a5ap-4 got -0x1.d88a5p-4 ulperr 4.919 = 0x1.4p+2 + -0x1.4d601ap-4
X src/math/special/y0f.h:9: RN y0f(0x1.fa9536p+1) want -0x1.da2946p-25 got -0x1.c5c23p-25 ulperr 668554.625 = 0x1.46716p+19 + -0x1.88a2bcp-2
FAIL src/math/y0f.exe [status 1]
src/math/sanity/y1.h:1: bad fp exception: RN y1(-0x1.02239f3c6a8f1p+3)=nan, want INVALID got 0
src/math/sanity/y1.h:3: bad fp exception: RN y1(-0x1.0c34b3e01e6e7p+3)=nan, want INVALID got 0
src/math/sanity/y1.h:4: bad fp exception: RN y1(-0x1.a206f0a19dcc4p+2)=nan, want INVALID got 0
src/math/sanity/y1.h:7: bad fp exception: RN y1(-0x1.a05cc754481d1p-2)=nan, want INVALID got 0
src/math/sanity/y1.h:10: bad fp exception: RN y1(-0x1.5b86ea8118a0ep-1)=nan, want INVALID got 0
src/math/special/y1.h:1: bad fp exception: RN y1(0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y1.h:2: bad fp exception: RN y1(-0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y1.h:3: bad fp exception: RN y1(-0x1p+0)=nan, want INVALID got 0
src/math/special/y1.h:5: bad fp exception: RN y1(-inf)=nan, want INVALID got 0
FAIL src/math/y1.exe [status 1]
src/math/sanity/y1f.h:1: bad fp exception: RN y1f(-0x1.0223ap+3)=-nan, want INVALID got 0
src/math/sanity/y1f.h:3: bad fp exception: RN y1f(-0x1.0c34b4p+3)=-nan, want INVALID got 0
src/math/sanity/y1f.h:4: bad fp exception: RN y1f(-0x1.a206fp+2)=-nan, want INVALID got 0
src/math/sanity/y1f.h:7: bad fp exception: RN y1f(-0x1.a05cc8p-2)=-nan, want INVALID got 0
src/math/sanity/y1f.h:10: bad fp exception: RN y1f(-0x1.5b86eap-1)=-nan, want INVALID got 0
src/math/special/y1f.h:1: bad fp exception: RN y1f(0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y1f.h:2: bad fp exception: RN y1f(-0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/y1f.h:3: bad fp exception: RN y1f(-0x1p+0)=-nan, want INVALID got 0
src/math/special/y1f.h:5: bad fp exception: RN y1f(-inf)=-nan, want INVALID got 0
FAIL src/math/y1f.exe [status 1]
src/math/sanity/yn.h:1: bad fp exception: RN yn(-2, -0x1.02239f3c6a8f1p+3)=nan, want INVALID got 0
src/math/sanity/yn.h:3: bad fp exception: RN yn(0, -0x1.0c34b3e01e6e7p+3)=nan, want INVALID got 0
src/math/sanity/yn.h:4: bad fp exception: RN yn(1, -0x1.a206f0a19dcc4p+2)=nan, want INVALID got 0
src/math/sanity/yn.h:7: bad fp exception: RN yn(4, -0x1.a05cc754481d1p-2)=nan, want INVALID got 0
src/math/sanity/yn.h:10: bad fp exception: RN yn(7, -0x1.5b86ea8118a0ep-1)=nan, want INVALID got 0
src/math/special/yn.h:1: bad fp exception: RN yn(0, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:2: bad fp exception: RN yn(0, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:3: bad fp exception: RN yn(0, -0x1p+0)=nan, want INVALID got 0
src/math/special/yn.h:5: bad fp exception: RN yn(0, -inf)=nan, want INVALID got 0
src/math/special/yn.h:7: bad fp exception: RN yn(1, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:8: bad fp exception: RN yn(1, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:9: bad fp exception: RN yn(1, -0x1p+0)=nan, want INVALID got 0
src/math/special/yn.h:11: bad fp exception: RN yn(1, -inf)=nan, want INVALID got 0
src/math/special/yn.h:13: bad fp exception: RN yn(-1, 0x0p+0)=inf, want DIVBYZERO got 0
src/math/special/yn.h:14: bad fp exception: RN yn(-1, -0x0p+0)=inf, want DIVBYZERO got 0
src/math/special/yn.h:15: bad fp exception: RN yn(-1, -0x1p+0)=nan, want INVALID got 0
src/math/special/yn.h:17: bad fp exception: RN yn(-1, -inf)=nan, want INVALID got 0
src/math/special/yn.h:19: bad fp exception: RN yn(2, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:20: bad fp exception: RN yn(2, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/yn.h:21: bad fp exception: RN yn(2, -0x1p+0)=nan, want INVALID got 0
src/math/special/yn.h:23: bad fp exception: RN yn(2, -inf)=nan, want INVALID got 0
FAIL src/math/yn.exe [status 1]
src/math/sanity/ynf.h:1: bad fp exception: RN ynf(-2, -0x1.0223ap+3)=-nan, want INVALID got 0
src/math/sanity/ynf.h:3: bad fp exception: RN ynf(0, -0x1.0c34b4p+3)=-nan, want INVALID got 0
src/math/sanity/ynf.h:4: bad fp exception: RN ynf(1, -0x1.a206fp+2)=-nan, want INVALID got 0
X src/math/sanity/ynf.h:6: RN ynf(3, 0x1.52efdp-1) want -0x1.2935d2p+4 got -0x1.2935d6p+4, ulperr -1.920 = -0x1p+1 + 0x1.47d13p-4
src/math/sanity/ynf.h:7: bad fp exception: RN ynf(4, -0x1.a05cc8p-2)=-nan, want INVALID got 0
X src/math/sanity/ynf.h:9: RN ynf(6, 0x1.8c5dbp-1) want -0x1.6dbc1cp+13 got -0x1.6dbc18p+13, ulperr 2.115 = 0x1p+1 + 0x1.d597eep-4
src/math/sanity/ynf.h:10: bad fp exception: RN ynf(7, -0x1.5b86eap-1)=-nan, want INVALID got 0
src/math/special/ynf.h:1: bad fp exception: RN ynf(0, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:2: bad fp exception: RN ynf(0, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:3: bad fp exception: RN ynf(0, -0x1p+0)=-nan, want INVALID got 0
src/math/special/ynf.h:5: bad fp exception: RN ynf(0, -inf)=-nan, want INVALID got 0
src/math/special/ynf.h:7: bad fp exception: RN ynf(1, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:8: bad fp exception: RN ynf(1, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:9: bad fp exception: RN ynf(1, -0x1p+0)=-nan, want INVALID got 0
src/math/special/ynf.h:11: bad fp exception: RN ynf(1, -inf)=-nan, want INVALID got 0
src/math/special/ynf.h:13: bad fp exception: RN ynf(-1, 0x0p+0)=inf, want DIVBYZERO got 0
src/math/special/ynf.h:14: bad fp exception: RN ynf(-1, -0x0p+0)=inf, want DIVBYZERO got 0
src/math/special/ynf.h:15: bad fp exception: RN ynf(-1, -0x1p+0)=-nan, want INVALID got 0
src/math/special/ynf.h:17: bad fp exception: RN ynf(-1, -inf)=-nan, want INVALID got 0
src/math/special/ynf.h:19: bad fp exception: RN ynf(2, 0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:20: bad fp exception: RN ynf(2, -0x0p+0)=-inf, want DIVBYZERO got 0
src/math/special/ynf.h:21: bad fp exception: RN ynf(2, -0x1p+0)=-nan, want INVALID got 0
src/math/special/ynf.h:23: bad fp exception: RN ynf(2, -inf)=-nan, want INVALID got 0
FAIL src/math/ynf.exe [status 1]
src/regression/daemon-failure.c:56:24: warning: adding 'int' to a string does not append to the string [-Wstring-plus-int]
                if (write(fd[1], "1" + !t_status, 1) != 1)
                                 ~~~~^~~~~~~~~~~
src/regression/daemon-failure.c:56:24: note: use array indexing to silence this warning
                if (write(fd[1], "1" + !t_status, 1) != 1)
                                     ^
                                 &   [          ]
1 warning generated.
src/regression/malloc-brk-fail.c:31: malloc(10000) succeeded after memory is filled
FAIL src/regression/malloc-brk-fail.exe [status 1]
src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38 "Function not implemented" want 0 "No error information"
src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous owner died"
src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38 "Function not implemented" want 0 "No error information"
src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous owner died"
FAIL src/regression/pthread-robust-detach-static.exe [status 1]
src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==0) got 38 "Function not implemented" want 0 "No error information"
src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==0) got 110 "Operation timed out" want 130 "Previous owner died"
src/regression/pthread-robust-detach.c:33: pthread_mutexattr_setrobust(&mtx_a, 1) failed: (pshared==1) got 38 "Function not implemented" want 0 "No error information"
src/regression/pthread-robust-detach.c:50: pthread_mutex_timedlock(&mtx, &ts) failed: (pshared==1) got 110 "Operation timed out" want 130 "Previous owner died"
FAIL src/regression/pthread-robust-detach.exe [status 1]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-05-05 23:37                 ` sidneym
@ 2020-05-06  0:59                   ` Rich Felker
  2020-06-18 16:37                     ` sidneym
  0 siblings, 1 reply; 31+ messages in thread
From: Rich Felker @ 2020-05-06  0:59 UTC (permalink / raw)
  To: sidneym; +Cc: musl

On Tue, May 05, 2020 at 06:37:41PM -0500, sidneym@codeaurora.org wrote:
> >- The definitions in bits/msg.h, bits/sem.h, and bits/shm.h are not
> >  time64-compatible. In fact bits/sem.h is a regression; you had it
> >  right before and broke it.
> As you point out below the core of the problem was the missing time64
> calls.  I've updated the structures to use what I hope or the
> correct types.

I think they're still wrong and you need to do like the existing
32-bit archs, defining IPC_STAT to 0x102 and putting separate unsigned
long *_lo/*_hi members in the right places for the kernel ABI and
adding the time_t members at the ends. This is almost surely the case
if _Alignof(long long) is 8 on hexagon, since the kernel's
include/uapi/asm-generic/msgbuf.h etc. have the lo/hi pairs misaligned
(struct ipc_perm is an odd number of 32-bit words). The fact that you
had to change qemu to make this work suggests that you still have it
wrong too -- you should not have to change qemu or the kernel to make
it work if you do it right.

> >- The definition in bits/stat.h is using the wrong types (you need to
> >  use libc type names for all the members; this is a policy
> >  requirement to ensure that none inadvertently mismatch). Note that
> >  there's not even really a need to use an arch-specific header here
> >  anymore; the kernel definition comes from arch/hexagon/kstat.h and
> >  the bits/stat.h can just be copied from aarch64 or something else
> >  with a clean layout.
> 
> I used OpenRISC's stat.h.

Is there a reason? It has old __st_*tim32 members but you don't need
them since there's no old-musl-ABI involved.

> src/api/ftw.c:44:1: error: switch condition has boolean value [-Werror,-Wswitch-bool]
> C(S_ISBLK(0))
> ^~~~~~~~~~~~~

You're still building libc-test with -Werror which will give bogus
results.

> src/api/sys_ipc.c:13:1: error: initializing 'uid_t *' (aka 'unsigned int *') with an expression of type 'int *' converts between pointers to integer types with different sign [-Werror,-Wpointer-sign]
> F(uid_t,uid)
> ^~~~~~~~~~~~
> src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
> #define F(t,n) {t *y = &x.n;}
>                    ^   ~~~~

This is happening because struct ipc_perm's members have the wrong
types (but I think you should just delete your bits/ipc.h because the
generic one is correct and matches the kernel's ABI for hexagon).

> src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384, want 0
> src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed: got 6823500725968961536, want 0
> src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 69713, want >= 1588720066
> src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want > 0
> src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384, want 1
> src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got 0, want 240818
> src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
> src/functional/ipc_msg.c:130: child exit status: 256
> FAIL src/functional/ipc_msg-static.exe [status 1]
> src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384, want 0
> src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed: got 6823500725968961536, want 0
> src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 0, want >= 1588720066
> src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want > 0
> src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384, want 1
> src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got 0, want 240786
> src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
> src/functional/ipc_msg.c:130: child exit status: 256
> FAIL src/functional/ipc_msg.exe [status 1]

These indicate your struct ipc_perm/msqid_ds mismatch kernel, as
described above.

Otherwise I didn't see anything obviously wrong in tests. Having less
noise from -Werror and the above issues would make it easier to review
the report though and ensure I'm not missing anything.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-05-06  0:59                   ` Rich Felker
@ 2020-06-18 16:37                     ` sidneym
  2020-06-18 21:42                       ` Szabolcs Nagy
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-06-18 16:37 UTC (permalink / raw)
  To: musl


[-- Attachment #1: Type: text/plain, Size: 5438 bytes --]


> -----Original Message-----
> From: Rich Felker <dalias@libc.org>
> Sent: Tuesday, May 5, 2020 7:59 PM
> To: sidneym@codeaurora.org
> Cc: musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Tue, May 05, 2020 at 06:37:41PM -0500, sidneym@codeaurora.org wrote:
> > >- The definitions in bits/msg.h, bits/sem.h, and bits/shm.h are not
> > >  time64-compatible. In fact bits/sem.h is a regression; you had it
> > >  right before and broke it.
> > As you point out below the core of the problem was the missing time64
> > calls.  I've updated the structures to use what I hope or the correct
> > types.
> 
> I think they're still wrong and you need to do like the existing 32-bit
archs,
> defining IPC_STAT to 0x102 and putting separate unsigned long *_lo/*_hi
> members in the right places for the kernel ABI and adding the time_t
members
> at the ends. This is almost surely the case if _Alignof(long long) is 8 on
hexagon,
> since the kernel's include/uapi/asm-generic/msgbuf.h etc. have the lo/hi
pairs
> misaligned (struct ipc_perm is an odd number of 32-bit words). The fact
that
> you had to change qemu to make this work suggests that you still have it
> wrong too -- you should not have to change qemu or the kernel to make it
> work if you do it right.

The IPC_STAT setting was a key element missing from the port.

> 
> > >- The definition in bits/stat.h is using the wrong types (you need to
> > >  use libc type names for all the members; this is a policy
> > >  requirement to ensure that none inadvertently mismatch). Note that
> > >  there's not even really a need to use an arch-specific header here
> > >  anymore; the kernel definition comes from arch/hexagon/kstat.h and
> > >  the bits/stat.h can just be copied from aarch64 or something else
> > >  with a clean layout.
> >
> > I used OpenRISC's stat.h.
> 
> Is there a reason? It has old __st_*tim32 members but you don't need them
> since there's no old-musl-ABI involved.

I think you had originally suggested using aarch64 and that is what is there
now.

> 
> > src/api/ftw.c:44:1: error: switch condition has boolean value
> > [-Werror,-Wswitch-bool]
> > C(S_ISBLK(0))
> > ^~~~~~~~~~~~~
> 
> You're still building libc-test with -Werror which will give bogus
results.
> 
> > src/api/sys_ipc.c:13:1: error: initializing 'uid_t *' (aka 'unsigned
> > int *') with an expression of type 'int *' converts between pointers
> > to integer types with different sign [-Werror,-Wpointer-sign]
> > F(uid_t,uid)
> > ^~~~~~~~~~~~
> > src/api/sys_ipc.c:3:20: note: expanded from macro 'F'
> > #define F(t,n) {t *y = &x.n;}
> >                    ^   ~~~~
> 
> This is happening because struct ipc_perm's members have the wrong types
> (but I think you should just delete your bits/ipc.h because the generic
one is
> correct and matches the kernel's ABI for hexagon).

QEMU for Hexagon's target_ipc_perm was based on the deprecated one cited in
uapi/linux/ipc.h instead of the generic version in
./uapi/asm-generic/ipcbuf.h  I removed the file, ipc.h from musl and
corrected QEMU.


> 
> > src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384,
> > want 0
> > src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed:
> > got 6823500725968961536, want 0
> > src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 69713,
> > want >= 1588720066
> > src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want
> > > 0
> > src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384,
> > want 1
> > src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got
> > 0, want 240818
> > src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
> > src/functional/ipc_msg.c:130: child exit status: 256 FAIL
> > src/functional/ipc_msg-static.exe [status 1]
> > src/functional/ipc_msg.c:63: qid_ds.msg_qnum == 0 failed: got 16384,
> > want 0
> > src/functional/ipc_msg.c:67: (long long)qid_ds.msg_rtime == 0 failed:
> > got 6823500725968961536, want 0
> > src/functional/ipc_msg.c:69: qid_ds.msg_ctime >= t failed: got 0, want
> > >= 1588720066
> > src/functional/ipc_msg.c:73: qid_ds.msg_qbytes > 0 failed: got 0, want
> > > 0
> > src/functional/ipc_msg.c:78: qid_ds.msg_qnum == 1 failed: got 16384,
> > want 1
> > src/functional/ipc_msg.c:79: qid_ds.msg_lspid == getpid() failed: got
> > 0, want 240786
> > src/functional/ipc_msg.c:81: msg_stime is 0 want >= 1588720066
> > src/functional/ipc_msg.c:130: child exit status: 256 FAIL
> > src/functional/ipc_msg.exe [status 1]
> 
> These indicate your struct ipc_perm/msqid_ds mismatch kernel, as described
> above.
> 
> Otherwise I didn't see anything obviously wrong in tests. Having less
noise
> from -Werror and the above issues would make it easier to review the
report
> though and ensure I'm not missing anything.

I attached the updated REPORT with warning output disabled, -w and
-fno-rounding-math (See https://bugs.llvm.org/show_bug.cgi?id=45329)  along
with the patch.  I've rebased a couple of times without any conflicts and
the git repo is here: https://github.com/quic/musl/tree/hexagon

My most recent rebase was yesterday and that is what I used for the patch
and the libc-test.

I'd like to get Hexagon added as a supported architecture and I am certain
there are preferred windows when new architectures are accepted.
Understanding when those are and what requirements for inclusion are would
be good to know.

Thanks


> 
> Rich

[-- Attachment #2: REPORT --]
[-- Type: application/octet-stream, Size: 249913 bytes --]

[-- Attachment #3: musl-add-hexagon.diff --]
[-- Type: application/octet-stream, Size: 42184 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-06-18 16:37                     ` sidneym
@ 2020-06-18 21:42                       ` Szabolcs Nagy
  2020-06-19 21:58                         ` sidneym
  0 siblings, 1 reply; 31+ messages in thread
From: Szabolcs Nagy @ 2020-06-18 21:42 UTC (permalink / raw)
  To: sidneym; +Cc: musl

* sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-06-18 11:37:05 -0500]:
> I attached the updated REPORT with warning output disabled, -w and
> -fno-rounding-math (See https://bugs.llvm.org/show_bug.cgi?id=45329)  along
> with the patch.  I've rebased a couple of times without any conflicts and
> the git repo is here: https://github.com/quic/musl/tree/hexagon

the fmal failures are a bit concerning:

fmal should be a tail call to fma if long double has the same
representation as double. (can you please verify this? there
should be a single branch instruction in fmal)

there are no fma failures with the same tests so fmal should
work fine too.

may be the libc-test code got miscompiled or somehow wrong?
or long double arithmetics is broken?

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-06-18 21:42                       ` Szabolcs Nagy
@ 2020-06-19 21:58                         ` sidneym
  2020-06-19 22:46                           ` Rich Felker
  0 siblings, 1 reply; 31+ messages in thread
From: sidneym @ 2020-06-19 21:58 UTC (permalink / raw)
  To: 'Szabolcs Nagy'; +Cc: musl


> -----Original Message-----
> From: Szabolcs Nagy <nsz@port70.net>
> Sent: Thursday, June 18, 2020 4:43 PM
> To: sidneym@codeaurora.org
> Cc: musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-06-18 11:37:05
> -0500]:
> > I attached the updated REPORT with warning output disabled, -w and
> > -fno-rounding-math (See https://bugs.llvm.org/show_bug.cgi?id=45329)
> > along with the patch.  I've rebased a couple of times without any
> > conflicts and the git repo is here:
> > https://github.com/quic/musl/tree/hexagon
> 
> the fmal failures are a bit concerning:
> 
> fmal should be a tail call to fma if long double has the same
representation as
> double. (can you please verify this? there should be a single branch
instruction
> in fmal)
> 
> there are no fma failures with the same tests so fmal should work fine
too.

In the case of fma the selected function comes from compiler-rt-builtins.
It looks like since fmal calls fma within the context of the c-library the
c-library's version is branched to.

compiler-rt-builtins for hexagon should include a fmal function that jumps
to the optimized fma, it does not but I can fix that.

I generally only use the tip-of-tree clang and that isn't generating correct
code when building fma.c.  When I use our internally release llvm tools fma
and fmal tests both pass.

Thanks

> 
> may be the libc-test code got miscompiled or somehow wrong?
> or long double arithmetics is broken?


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-06-19 21:58                         ` sidneym
@ 2020-06-19 22:46                           ` Rich Felker
  2020-06-20  0:03                             ` [musl] strtok Robert Skopalík
  2020-06-20  2:29                             ` [musl] Hexagon DSP support sidneym
  0 siblings, 2 replies; 31+ messages in thread
From: Rich Felker @ 2020-06-19 22:46 UTC (permalink / raw)
  To: sidneym; +Cc: 'Szabolcs Nagy', musl

On Fri, Jun 19, 2020 at 04:58:53PM -0500, sidneym@codeaurora.org wrote:
> 
> > -----Original Message-----
> > From: Szabolcs Nagy <nsz@port70.net>
> > Sent: Thursday, June 18, 2020 4:43 PM
> > To: sidneym@codeaurora.org
> > Cc: musl@lists.openwall.com
> > Subject: Re: [musl] Hexagon DSP support
> > 
> > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-06-18 11:37:05
> > -0500]:
> > > I attached the updated REPORT with warning output disabled, -w and
> > > -fno-rounding-math (See https://bugs.llvm.org/show_bug.cgi?id=45329)
> > > along with the patch.  I've rebased a couple of times without any
> > > conflicts and the git repo is here:
> > > https://github.com/quic/musl/tree/hexagon
> > 
> > the fmal failures are a bit concerning:
> > 
> > fmal should be a tail call to fma if long double has the same
> representation as
> > double. (can you please verify this? there should be a single branch
> instruction
> > in fmal)
> > 
> > there are no fma failures with the same tests so fmal should work fine
> too.
> 
> In the case of fma the selected function comes from compiler-rt-builtins.
> It looks like since fmal calls fma within the context of the c-library the
> c-library's version is branched to.

Are you talking about how libc-test was built or how musl was built?
This kind of replacement is not valid in either place. musl is built
with -ffreestanding, and libc-test is expected to be built with
-fno-builtin.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* [musl] strtok
  2020-06-19 22:46                           ` Rich Felker
@ 2020-06-20  0:03                             ` Robert Skopalík
  2020-06-20  0:15                               ` Rich Felker
  2020-06-20  2:29                             ` [musl] Hexagon DSP support sidneym
  1 sibling, 1 reply; 31+ messages in thread
From: Robert Skopalík @ 2020-06-20  0:03 UTC (permalink / raw)
  To: musl; +Cc: Miroslav Němeček

Hello,

we are working on an OS for a STM32 MCU. We like how the reentrancy is solved in musl, but ... when two (or more) userspace programs using a strtok function are run, there might be a collision (because strtok uses a static var to save the pointer). We did not find any redirection mechanism from strtok to strtok_r. How is it meant pls? We do not want to force the users to write strtok_r into a non-threaded user program.

Is there some solution to make it work right?

Thank you

RS

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] strtok
  2020-06-20  0:03                             ` [musl] strtok Robert Skopalík
@ 2020-06-20  0:15                               ` Rich Felker
  2020-06-20  0:36                                 ` Robert Skopalík
                                                   ` (2 more replies)
  0 siblings, 3 replies; 31+ messages in thread
From: Rich Felker @ 2020-06-20  0:15 UTC (permalink / raw)
  To: Robert Skopalík; +Cc: musl, Miroslav Němeček

On Sat, Jun 20, 2020 at 12:03:12AM +0000, Robert Skopalík wrote:
> Hello,
> 
> we are working on an OS for a STM32 MCU. We like how the reentrancy
> is solved in musl, but ... when two (or more) userspace programs
> using a strtok function are run, there might be a collision (because
> strtok uses a static var to save the pointer). We did not find any
> redirection mechanism from strtok to strtok_r. How is it meant pls?
> We do not want to force the users to write strtok_r into a
> non-threaded user program.
> 
> Is there some solution to make it work right?
> 
> Thank you

If multiple programs are running, each needs its own execution context
including its own versions of all libc (and any other) global data.
Probably you should look into the ARM FDPIC ABI, which is the right
way to do this while still sharing program text for MMU-less
microcontrollers like the one you're working with. The tooling should
be mature now so that support could be added to musl, but making it
happen needs people who are interested in providing feedback and
testing.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] strtok
  2020-06-20  0:15                               ` Rich Felker
@ 2020-06-20  0:36                                 ` Robert Skopalík
  2020-06-20  0:46                                 ` Robert Skopalík
  2020-06-20  7:07                                 ` Patrick Oppenlander
  2 siblings, 0 replies; 31+ messages in thread
From: Robert Skopalík @ 2020-06-20  0:36 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl, Miroslav Němeček

I see! Thank you.

We know fdpic. I guess we need to compile gcc toolchain with fdpic for this MCU. We tried that, no success :) I am afraid we are not experienced enough to make it right. We don't even know how the resulting gcc should be named - arm-our_os-eabi? :)

Could you pls point us to some literature - what to read to do it? And to connect it to musl the right way?

Thank you.

R

-----Original Message-----
From: Rich Felker [mailto:dalias@libc.org] 
Sent: Saturday, June 20, 2020 2:16 AM
To: Robert Skopalík
Cc: musl@lists.openwall.com; Miroslav Němeček
Subject: Re: [musl] strtok

On Sat, Jun 20, 2020 at 12:03:12AM +0000, Robert Skopalík wrote:
> Hello,
> 
> we are working on an OS for a STM32 MCU. We like how the reentrancy
> is solved in musl, but ... when two (or more) userspace programs
> using a strtok function are run, there might be a collision (because
> strtok uses a static var to save the pointer). We did not find any
> redirection mechanism from strtok to strtok_r. How is it meant pls?
> We do not want to force the users to write strtok_r into a
> non-threaded user program.
> 
> Is there some solution to make it work right?
> 
> Thank you

If multiple programs are running, each needs its own execution context
including its own versions of all libc (and any other) global data.
Probably you should look into the ARM FDPIC ABI, which is the right
way to do this while still sharing program text for MMU-less
microcontrollers like the one you're working with. The tooling should
be mature now so that support could be added to musl, but making it
happen needs people who are interested in providing feedback and
testing.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] strtok
  2020-06-20  0:15                               ` Rich Felker
  2020-06-20  0:36                                 ` Robert Skopalík
@ 2020-06-20  0:46                                 ` Robert Skopalík
  2020-06-20  1:44                                   ` Rich Felker
  2020-06-20  7:07                                 ` Patrick Oppenlander
  2 siblings, 1 reply; 31+ messages in thread
From: Robert Skopalík @ 2020-06-20  0:46 UTC (permalink / raw)
  To: Rich Felker; +Cc: musl, Miroslav Němeček

I wouldn't like to bother you more than neccessary, but if you don't mind (as I hope :), I have one more question:

Do we really need got table for a noMMU MCU? Fdpic uses it and I was looking for the answer what is it for pretty long - no success. Wouldn't it be enough just to keep the data segment offset in r9 and make all the data relative to it (in compiler)? That would get rid of the whole got table complexities. Bad idea? :)

Thanks

R

-----Original Message-----
From: Rich Felker [mailto:dalias@libc.org] 
Sent: Saturday, June 20, 2020 2:16 AM
To: Robert Skopalík
Cc: musl@lists.openwall.com; Miroslav Němeček
Subject: Re: [musl] strtok

On Sat, Jun 20, 2020 at 12:03:12AM +0000, Robert Skopalík wrote:
> Hello,
> 
> we are working on an OS for a STM32 MCU. We like how the reentrancy
> is solved in musl, but ... when two (or more) userspace programs
> using a strtok function are run, there might be a collision (because
> strtok uses a static var to save the pointer). We did not find any
> redirection mechanism from strtok to strtok_r. How is it meant pls?
> We do not want to force the users to write strtok_r into a
> non-threaded user program.
> 
> Is there some solution to make it work right?
> 
> Thank you

If multiple programs are running, each needs its own execution context
including its own versions of all libc (and any other) global data.
Probably you should look into the ARM FDPIC ABI, which is the right
way to do this while still sharing program text for MMU-less
microcontrollers like the one you're working with. The tooling should
be mature now so that support could be added to musl, but making it
happen needs people who are interested in providing feedback and
testing.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] strtok
  2020-06-20  0:46                                 ` Robert Skopalík
@ 2020-06-20  1:44                                   ` Rich Felker
  0 siblings, 0 replies; 31+ messages in thread
From: Rich Felker @ 2020-06-20  1:44 UTC (permalink / raw)
  To: Robert Skopalík; +Cc: musl, Miroslav Němeček

On Sat, Jun 20, 2020 at 12:46:43AM +0000, Robert Skopalík wrote:
> I wouldn't like to bother you more than neccessary, but if you don't
> mind (as I hope :), I have one more question:
> 
> Do we really need got table for a noMMU MCU? Fdpic uses it and I was
> looking for the answer what is it for pretty long - no success.
> Wouldn't it be enough just to keep the data segment offset in r9 and
> make all the data relative to it (in compiler)? That would get rid
> of the whole got table complexities. Bad idea? :)

That doesn't admit shared libraries, just multiple instances of the
same static-linked binary. It's not a supported ABI so you'd need to
hack up a toolchain and modified musl to do it.

On the other hand if you don't care about sharing text at all (might
be the case if yout text is expected to be very small anyway) you can
just use normal PIE binaries.

Rich


> -----Original Message-----
> From: Rich Felker [mailto:dalias@libc.org] 
> Sent: Saturday, June 20, 2020 2:16 AM
> To: Robert Skopalík
> Cc: musl@lists.openwall.com; Miroslav Němeček
> Subject: Re: [musl] strtok
> 
> On Sat, Jun 20, 2020 at 12:03:12AM +0000, Robert Skopalík wrote:
> > Hello,
> > 
> > we are working on an OS for a STM32 MCU. We like how the reentrancy
> > is solved in musl, but ... when two (or more) userspace programs
> > using a strtok function are run, there might be a collision (because
> > strtok uses a static var to save the pointer). We did not find any
> > redirection mechanism from strtok to strtok_r. How is it meant pls?
> > We do not want to force the users to write strtok_r into a
> > non-threaded user program.
> > 
> > Is there some solution to make it work right?
> > 
> > Thank you
> 
> If multiple programs are running, each needs its own execution context
> including its own versions of all libc (and any other) global data.
> Probably you should look into the ARM FDPIC ABI, which is the right
> way to do this while still sharing program text for MMU-less
> microcontrollers like the one you're working with. The tooling should
> be mature now so that support could be added to musl, but making it
> happen needs people who are interested in providing feedback and
> testing.
> 
> Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] Hexagon DSP support
  2020-06-19 22:46                           ` Rich Felker
  2020-06-20  0:03                             ` [musl] strtok Robert Skopalík
@ 2020-06-20  2:29                             ` sidneym
  2020-06-20  3:20                               ` Rich Felker
  1 sibling, 1 reply; 31+ messages in thread
From: sidneym @ 2020-06-20  2:29 UTC (permalink / raw)
  To: musl; +Cc: 'Szabolcs Nagy'



> -----Original Message-----
> From: Rich Felker <dalias@libc.org>
> Sent: Friday, June 19, 2020 5:46 PM
> To: sidneym@codeaurora.org
> Cc: 'Szabolcs Nagy' <nsz@port70.net>; musl@lists.openwall.com
> Subject: Re: [musl] Hexagon DSP support
> 
> On Fri, Jun 19, 2020 at 04:58:53PM -0500, sidneym@codeaurora.org wrote:
> >
> > > -----Original Message-----
> > > From: Szabolcs Nagy <nsz@port70.net>
> > > Sent: Thursday, June 18, 2020 4:43 PM
> > > To: sidneym@codeaurora.org
> > > Cc: musl@lists.openwall.com
> > > Subject: Re: [musl] Hexagon DSP support
> > >
> > > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-06-18
> > > 11:37:05
> > > -0500]:
> > > > I attached the updated REPORT with warning output disabled, -w and
> > > > -fno-rounding-math (See
> > > > https://bugs.llvm.org/show_bug.cgi?id=45329)
> > > > along with the patch.  I've rebased a couple of times without any
> > > > conflicts and the git repo is here:
> > > > https://github.com/quic/musl/tree/hexagon
> > >
> > > the fmal failures are a bit concerning:
> > >
> > > fmal should be a tail call to fma if long double has the same
> > representation as
> > > double. (can you please verify this? there should be a single branch
> > instruction
> > > in fmal)
> > >
> > > there are no fma failures with the same tests so fmal should work
> > > fine
> > too.
> >
> > In the case of fma the selected function comes from
compiler-rt-builtins.
> > It looks like since fmal calls fma within the context of the c-library
> > the c-library's version is branched to.
> 
> Are you talking about how libc-test was built or how musl was built?
> This kind of replacement is not valid in either place. musl is built with
-
> ffreestanding, and libc-test is expected to be built with -fno-builtin.
> 
The link order is the reason.  The clang driver places
-lclang_rt.builtins-hexagon ahead of -lc and it happens that this library
includes an implementation of fma.  I think fma is something that was
introduced in error in compiler-rt.builtins because hexagon is the only arch
that has it.


> Rich


^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] Hexagon DSP support
  2020-06-20  2:29                             ` [musl] Hexagon DSP support sidneym
@ 2020-06-20  3:20                               ` Rich Felker
  0 siblings, 0 replies; 31+ messages in thread
From: Rich Felker @ 2020-06-20  3:20 UTC (permalink / raw)
  To: sidneym; +Cc: musl, 'Szabolcs Nagy'

On Fri, Jun 19, 2020 at 09:29:04PM -0500, sidneym@codeaurora.org wrote:
> 
> 
> > -----Original Message-----
> > From: Rich Felker <dalias@libc.org>
> > Sent: Friday, June 19, 2020 5:46 PM
> > To: sidneym@codeaurora.org
> > Cc: 'Szabolcs Nagy' <nsz@port70.net>; musl@lists.openwall.com
> > Subject: Re: [musl] Hexagon DSP support
> > 
> > On Fri, Jun 19, 2020 at 04:58:53PM -0500, sidneym@codeaurora.org wrote:
> > >
> > > > -----Original Message-----
> > > > From: Szabolcs Nagy <nsz@port70.net>
> > > > Sent: Thursday, June 18, 2020 4:43 PM
> > > > To: sidneym@codeaurora.org
> > > > Cc: musl@lists.openwall.com
> > > > Subject: Re: [musl] Hexagon DSP support
> > > >
> > > > * sidneym@codeaurora.org <sidneym@codeaurora.org> [2020-06-18
> > > > 11:37:05
> > > > -0500]:
> > > > > I attached the updated REPORT with warning output disabled, -w and
> > > > > -fno-rounding-math (See
> > > > > https://bugs.llvm.org/show_bug.cgi?id=45329)
> > > > > along with the patch.  I've rebased a couple of times without any
> > > > > conflicts and the git repo is here:
> > > > > https://github.com/quic/musl/tree/hexagon
> > > >
> > > > the fmal failures are a bit concerning:
> > > >
> > > > fmal should be a tail call to fma if long double has the same
> > > representation as
> > > > double. (can you please verify this? there should be a single branch
> > > instruction
> > > > in fmal)
> > > >
> > > > there are no fma failures with the same tests so fmal should work
> > > > fine
> > > too.
> > >
> > > In the case of fma the selected function comes from
> compiler-rt-builtins.
> > > It looks like since fmal calls fma within the context of the c-library
> > > the c-library's version is branched to.
> > 
> > Are you talking about how libc-test was built or how musl was built?
> > This kind of replacement is not valid in either place. musl is built with
> -
> > ffreestanding, and libc-test is expected to be built with -fno-builtin.
> > 
> The link order is the reason.  The clang driver places
> -lclang_rt.builtins-hexagon ahead of -lc and it happens that this library
> includes an implementation of fma.  I think fma is something that was
> introduced in error in compiler-rt.builtins because hexagon is the only arch
> that has it.

Yes, that's a bug. compiler-rt cannot define libc functions.

Rich

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] strtok
  2020-06-20  0:15                               ` Rich Felker
  2020-06-20  0:36                                 ` Robert Skopalík
  2020-06-20  0:46                                 ` Robert Skopalík
@ 2020-06-20  7:07                                 ` Patrick Oppenlander
  2020-06-20 13:00                                   ` Robert Skopalík
  2 siblings, 1 reply; 31+ messages in thread
From: Patrick Oppenlander @ 2020-06-20  7:07 UTC (permalink / raw)
  To: musl

On Sat, Jun 20, 2020 at 10:15 AM Rich Felker <dalias@libc.org> wrote:
>
> If multiple programs are running, each needs its own execution context
> including its own versions of all libc (and any other) global data.
> Probably you should look into the ARM FDPIC ABI, which is the right
> way to do this while still sharing program text for MMU-less
> microcontrollers like the one you're working with. The tooling should
> be mature now so that support could be added to musl, but making it
> happen needs people who are interested in providing feedback and
> testing.
>

I'm very interested and will definitely be able to provide feedback & testing.

Apex (apexrtos.com) is waiting for musl FDPIC support so that I can
work on the kernel side. This is the RTOS with the Linux syscall
interface I think I might have mentioned some time ago.

Patrick

^ permalink raw reply	[flat|nested] 31+ messages in thread

* RE: [musl] strtok
  2020-06-20  7:07                                 ` Patrick Oppenlander
@ 2020-06-20 13:00                                   ` Robert Skopalík
  2020-06-22  0:57                                     ` Bery Saidi
  0 siblings, 1 reply; 31+ messages in thread
From: Robert Skopalík @ 2020-06-20 13:00 UTC (permalink / raw)
  To: musl

Me tooo :)))

-----Original Message-----
From: Patrick Oppenlander [mailto:patrick.oppenlander@gmail.com] 
Sent: Saturday, June 20, 2020 9:07 AM
To: musl@lists.openwall.com
Subject: Re: [musl] strtok

On Sat, Jun 20, 2020 at 10:15 AM Rich Felker <dalias@libc.org> wrote:
>
> If multiple programs are running, each needs its own execution context
> including its own versions of all libc (and any other) global data.
> Probably you should look into the ARM FDPIC ABI, which is the right
> way to do this while still sharing program text for MMU-less
> microcontrollers like the one you're working with. The tooling should
> be mature now so that support could be added to musl, but making it
> happen needs people who are interested in providing feedback and
> testing.
>

I'm very interested and will definitely be able to provide feedback & testing.

Apex (apexrtos.com) is waiting for musl FDPIC support so that I can
work on the kernel side. This is the RTOS with the Linux syscall
interface I think I might have mentioned some time ago.

Patrick

^ permalink raw reply	[flat|nested] 31+ messages in thread

* Re: [musl] strtok
  2020-06-20 13:00                                   ` Robert Skopalík
@ 2020-06-22  0:57                                     ` Bery Saidi
  0 siblings, 0 replies; 31+ messages in thread
From: Bery Saidi @ 2020-06-22  0:57 UTC (permalink / raw)
  To: musl


[-- Attachment #1: Type: text/plain, Size: 1257 bytes --]

I can also provide testing and feedback.
Regards,
On Sat, Jun 20, 2020 at 9:01 AM Robert Skopalík <rs@income.cz> wrote:

> Me tooo :)))
>
> -----Original Message-----
> From: Patrick Oppenlander [mailto:patrick.oppenlander@gmail.com]
> Sent: Saturday, June 20, 2020 9:07 AM
> To: musl@lists.openwall.com
> Subject: Re: [musl] strtok
>
> On Sat, Jun 20, 2020 at 10:15 AM Rich Felker <dalias@libc.org> wrote:
> >
> > If multiple programs are running, each needs its own execution context
> > including its own versions of all libc (and any other) global data.
> > Probably you should look into the ARM FDPIC ABI, which is the right
> > way to do this while still sharing program text for MMU-less
> > microcontrollers like the one you're working with. The tooling should
> > be mature now so that support could be added to musl, but making it
> > happen needs people who are interested in providing feedback and
> > testing.
> >
>
> I'm very interested and will definitely be able to provide feedback &
> testing.
>
> Apex (apexrtos.com) is waiting for musl FDPIC support so that I can
> work on the kernel side. This is the RTOS with the Linux syscall
> interface I think I might have mentioned some time ago.
>
> Patrick
>

[-- Attachment #2: Type: text/html, Size: 1886 bytes --]

^ permalink raw reply	[flat|nested] 31+ messages in thread

end of thread, back to index

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-15 13:19 [musl] Hexagon DSP support sidneym
2020-04-15 16:30 ` Rich Felker
2020-04-15 17:50   ` sidneym
2020-04-15 18:06     ` Szabolcs Nagy
2020-04-15 18:22       ` sidneym
2020-04-16  9:36         ` Szabolcs Nagy
2020-04-16 15:34           ` Rich Felker
2020-04-16 16:26             ` sidneym
2020-04-16 16:34               ` 'Rich Felker'
2020-04-15 18:26       ` Rich Felker
2020-04-15 19:12         ` sidneym
2020-04-15 19:29           ` 'Rich Felker'
2020-04-30 22:44             ` sidneym
2020-04-30 23:51               ` Rich Felker
2020-05-05 23:37                 ` sidneym
2020-05-06  0:59                   ` Rich Felker
2020-06-18 16:37                     ` sidneym
2020-06-18 21:42                       ` Szabolcs Nagy
2020-06-19 21:58                         ` sidneym
2020-06-19 22:46                           ` Rich Felker
2020-06-20  0:03                             ` [musl] strtok Robert Skopalík
2020-06-20  0:15                               ` Rich Felker
2020-06-20  0:36                                 ` Robert Skopalík
2020-06-20  0:46                                 ` Robert Skopalík
2020-06-20  1:44                                   ` Rich Felker
2020-06-20  7:07                                 ` Patrick Oppenlander
2020-06-20 13:00                                   ` Robert Skopalík
2020-06-22  0:57                                     ` Bery Saidi
2020-06-20  2:29                             ` [musl] Hexagon DSP support sidneym
2020-06-20  3:20                               ` Rich Felker
2020-04-15 18:55 ` Fangrui Song

mailing list of musl libc

Archives are clonable: git clone --mirror http://inbox.vuxu.org/musl

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.musl


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git