math: Add more inputs to atan2 accuracy tests [BZ #28765]

Message ID 20220112235333.1320220-1-skpgkp2@gmail.com
State Superseded
Headers
Series math: Add more inputs to atan2 accuracy tests [BZ #28765] |

Checks

Context Check Description
dj/TryBot-apply_patch success Patch applied to master at the time it was sent
dj/TryBot-32bit success Build for i686

Commit Message

Sunil Pandey Jan. 12, 2022, 11:53 p.m. UTC
  This patch adds following inputs:

0x1.bcab29da0e947p-54 0x1.bc41f4d2294b8p-54
0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588

to atan2 tests and updates x86_64 double atan2 ulps.

This fixes BZ #28765.
---
 math/auto-libm-test-in            |   4 +
 math/auto-libm-test-out-atan2     | 394 ++++++++++++++++++++++++++++++
 sysdeps/x86_64/fpu/libm-test-ulps |   4 +-
 3 files changed, 400 insertions(+), 2 deletions(-)
  

Comments

Paul Zimmermann Jan. 13, 2022, 4:38 a.m. UTC | #1
Dear Sunil,

first, with your atan2 patch fixing BZ #28765, I cannot get errors larger than
4 ulps with the SSE4.2 code. The largest error I get so far is 2.39063 ulps
with 0x1.a11891ec004d4p-348,0x1.814830510be26p-348.

> --- a/sysdeps/x86_64/fpu/libm-test-ulps
> +++ b/sysdeps/x86_64/fpu/libm-test-ulps
> @@ -214,10 +214,10 @@ double: 1
>  float: 2
>  
>  Function: "atan2_vlen4_avx2":
> -double: 1
> +double: 2

I wonder whether this should be increased to 3, since I get an error of 3.46942
ulps for the following inputs and AVX2 (and that inputs should be
added to math/auto-libm-test-in): 0x1.a83f842ef3f73p-633,0x1.a799d8a6677ep-633

>  Function: "atan2_vlen8":
> -double: 1
> +double: 2
>  float: 2
>  
>  Function: "atan2_vlen8_avx2":

Best regards,
Paul
  
Sunil Pandey Jan. 14, 2022, 3:36 a.m. UTC | #2
Hi Paul,

Thank you so much for running massive accuracy testing on libmvec
function and reporting the issues to us.

I added proposed inputs to v2 and regenerated ulps as requested. Let
me know if it looks ok to you.

Thank you so much for your help,
Sunil


On Wed, Jan 12, 2022 at 8:38 PM Paul Zimmermann
<Paul.Zimmermann@inria.fr> wrote:
>
>        Dear Sunil,
>
> first, with your atan2 patch fixing BZ #28765, I cannot get errors larger than
> 4 ulps with the SSE4.2 code. The largest error I get so far is 2.39063 ulps
> with 0x1.a11891ec004d4p-348,0x1.814830510be26p-348.
>
> > --- a/sysdeps/x86_64/fpu/libm-test-ulps
> > +++ b/sysdeps/x86_64/fpu/libm-test-ulps
> > @@ -214,10 +214,10 @@ double: 1
> >  float: 2
> >
> >  Function: "atan2_vlen4_avx2":
> > -double: 1
> > +double: 2
>
> I wonder whether this should be increased to 3, since I get an error of 3.46942
> ulps for the following inputs and AVX2 (and that inputs should be
> added to math/auto-libm-test-in): 0x1.a83f842ef3f73p-633,0x1.a799d8a6677ep-633
>
> >  Function: "atan2_vlen8":
> > -double: 1
> > +double: 2
> >  float: 2
> >
> >  Function: "atan2_vlen8_avx2":
>
> Best regards,
> Paul
>
  

Patch

diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 966201c090..5657ca396a 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -488,6 +488,10 @@  atan2 0x3.f16f1p+0 -0x1.546056p+0
 atan2 -0x1.9e657cp-24 0x7.40bb4p-52
 # the next value generates larger error bounds on x86_64 (binary32)
 atan2 -0x1.f9cf48p+49 0x1.f60598p+51
+# the next value generates larger error bounds on x86_64 (binary64)
+atan2 0x1.bcab29da0e947p-54 0x1.bc41f4d2294b8p-54
+# the next value generates larger error bounds on x86_64 (binary64)
+atan2 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588
 # the next value generates larger error bounds on x86_64 (binary128)
 atan2 0x1.41df5aa214612c7e019fa6ade88p-13316 0x5.e53b26a270a29eb9f77ef8ef7af8p-13316
 atan2 min min
diff --git a/math/auto-libm-test-out-atan2 b/math/auto-libm-test-out-atan2
index 8d92bc2942..0feb2eed04 100644
--- a/math/auto-libm-test-out-atan2
+++ b/math/auto-libm-test-out-atan2
@@ -5218,6 +5218,400 @@  atan2 -0x1.f9cf48p+49 0x1.f60598p+51
 = atan2 tonearest ibm128 -0x3.f39e9p+48 0xf.b02ccp+48 : -0x3.f2b37e0ca7ac31a1c0615ac92ap-4 : inexact-ok
 = atan2 towardzero ibm128 -0x3.f39e9p+48 0xf.b02ccp+48 : -0x3.f2b37e0ca7ac31a1c0615ac92ap-4 : inexact-ok
 = atan2 upward ibm128 -0x3.f39e9p+48 0xf.b02ccp+48 : -0x3.f2b37e0ca7ac31a1c0615ac92ap-4 : inexact-ok
+atan2 0x1.bcab29da0e947p-54 0x1.bc41f4d2294b8p-54
+= atan2 downward binary32 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 tonearest binary32 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 towardzero binary32 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 upward binary32 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63d8p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63d8p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63d8p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63ep-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaep-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbafp-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaep-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbafp-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaep-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbafp-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaep-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbafp-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dee78p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dee78p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dee78p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dee8p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75decp-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dfp-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75decp-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca8p-56 0x6.f107d8p-56 : 0xc.92e26b8fc63dbaedf472f75dfp-4 : inexact-ok
+= atan2 downward binary32 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 tonearest binary32 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 towardzero binary32 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 upward binary32 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e28p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb78p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb8p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb78p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb8p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce8p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce9p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce8p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce9p-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce8p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce9p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce8p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce9p-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d6bp-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d6b8p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d6bp-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d6b8p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d4p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d8p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d4p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca8p-56 0x6.f107dp-56 : 0xc.92e274c80fb7ce899797f0d7d8p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b36p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b3584ap-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b35849p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b3584ap-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323b17p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323b17p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323b17p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323b178p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323bp-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323bp-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323bp-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca8p-56 0x6.f107d348a52ep-56 : 0xc.92e270ff3b358490f84e1323b4p-4 : inexact-ok
+= atan2 downward binary32 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 tonearest binary32 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 towardzero binary32 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 upward binary32 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2d8p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ep-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2d8p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ep-4 : inexact-ok
+= atan2 downward intel96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 upward intel96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddcp-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbfp-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddcp-4 : inexact-ok
+= atan2 downward binary128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67b7p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67b7p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67b7p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67b78p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb678p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67cp-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb678p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2acap-56 0x6.f107d8p-56 : 0xc.92e26259ab2ddbf0371a8fb67cp-4 : inexact-ok
+= atan2 downward binary32 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 tonearest binary32 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 towardzero binary32 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26p-4 : inexact-ok
+= atan2 upward binary32 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e27p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a78p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a8p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a78p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a8p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f2p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f21p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f2p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f21p-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f2p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f21p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f2p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f21p-4 : inexact-ok
+= atan2 downward binary128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb858p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb858p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb858p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb86p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb8p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb8p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcb8p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2acap-56 0x6.f107dp-56 : 0xc.92e26b91f4a7f20f1e8cafdcbcp-4 : inexact-ok
+= atan2 downward binary64 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c920258p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c920258p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c920258p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92026p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a7p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a71p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a7p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a71p-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a7p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a71p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a7p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a71p-4 : inexact-ok
+= atan2 downward binary128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b013998p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b0139ap-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b013998p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b0139ap-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b0138p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b0138p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b0138p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2acap-56 0x6.f107d348a52ep-56 : 0xc.92e267c92025a70e72e20b013cp-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae10562p-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105628p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae10562p-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105628p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fcp-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fbp-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fcp-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4fe8p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4fe8p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4fe8p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4ffp-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4cp-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a5p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a4cp-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca7683a51cp-56 0x6.f107d8p-56 : 0xc.92e26ae105624fb58b68c52a5p-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edcp-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc8p-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edcp-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc8p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc639p-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc638p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc639p-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d958p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d958p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d958p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d96p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d8p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d8p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83d8p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca7683a51cp-56 0x6.f107dp-56 : 0xc.92e274194edc6380dab95d83dcp-4 : inexact-ok
+= atan2 downward binary64 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5ap-4 : inexact-ok
+= atan2 tonearest binary64 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5ap-4 : inexact-ok
+= atan2 towardzero binary64 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5ap-4 : inexact-ok
+= atan2 upward binary64 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a8p-4 : inexact-ok
+= atan2 downward intel96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 tonearest intel96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 towardzero intel96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 upward intel96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a198p-4 : inexact-ok
+= atan2 downward m68k96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 tonearest m68k96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 towardzero m68k96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a197p-4 : inexact-ok
+= atan2 upward m68k96 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a198p-4 : inexact-ok
+= atan2 downward binary128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e78679p-4 : inexact-ok
+= atan2 tonearest binary128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e786798p-4 : inexact-ok
+= atan2 towardzero binary128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e78679p-4 : inexact-ok
+= atan2 upward binary128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e786798p-4 : inexact-ok
+= atan2 downward ibm128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e7864p-4 : inexact-ok
+= atan2 tonearest ibm128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e7868p-4 : inexact-ok
+= atan2 towardzero ibm128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e7864p-4 : inexact-ok
+= atan2 upward ibm128 0x6.f2aca7683a51cp-56 0x6.f107d348a52ep-56 : 0xc.92e270507a5a1974a9dd2e7868p-4 : inexact-ok
+atan2 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588
+= atan2 downward binary32 0x8p-152 0x8p-152 : 0xc.90fdap-4 : inexact-ok
+= atan2 tonearest binary32 0x8p-152 0x8p-152 : 0xc.90fdbp-4 : inexact-ok
+= atan2 towardzero binary32 0x8p-152 0x8p-152 : 0xc.90fdap-4 : inexact-ok
+= atan2 upward binary32 0x8p-152 0x8p-152 : 0xc.90fdbp-4 : inexact-ok
+= atan2 downward binary64 0x8p-152 0x8p-152 : 0xc.90fdaa22168cp-4 : inexact-ok
+= atan2 tonearest binary64 0x8p-152 0x8p-152 : 0xc.90fdaa22168cp-4 : inexact-ok
+= atan2 towardzero binary64 0x8p-152 0x8p-152 : 0xc.90fdaa22168cp-4 : inexact-ok
+= atan2 upward binary64 0x8p-152 0x8p-152 : 0xc.90fdaa22168c8p-4 : inexact-ok
+= atan2 downward intel96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234p-4 : inexact-ok
+= atan2 tonearest intel96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c235p-4 : inexact-ok
+= atan2 towardzero intel96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234p-4 : inexact-ok
+= atan2 upward intel96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c235p-4 : inexact-ok
+= atan2 downward m68k96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234p-4 : inexact-ok
+= atan2 tonearest m68k96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c235p-4 : inexact-ok
+= atan2 towardzero m68k96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234p-4 : inexact-ok
+= atan2 upward m68k96 0x8p-152 0x8p-152 : 0xc.90fdaa22168c235p-4 : inexact-ok
+= atan2 downward binary128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= atan2 tonearest binary128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= atan2 towardzero binary128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80dcp-4 : inexact-ok
+= atan2 upward binary128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80dc8p-4 : inexact-ok
+= atan2 downward ibm128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= atan2 tonearest ibm128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= atan2 towardzero ibm128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b80cp-4 : inexact-ok
+= atan2 upward ibm128 0x8p-152 0x8p-152 : 0xc.90fdaa22168c234c4c6628b81p-4 : inexact-ok
+= atan2 downward binary32 0x8p-152 0x0p+0 : 0x1.921fb4p+0 : inexact-ok
+= atan2 tonearest binary32 0x8p-152 0x0p+0 : 0x1.921fb6p+0 : inexact-ok
+= atan2 towardzero binary32 0x8p-152 0x0p+0 : 0x1.921fb4p+0 : inexact-ok
+= atan2 upward binary32 0x8p-152 0x0p+0 : 0x1.921fb6p+0 : inexact-ok
+= atan2 downward binary64 0x8p-152 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 tonearest binary64 0x8p-152 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 towardzero binary64 0x8p-152 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 upward binary64 0x8p-152 0x0p+0 : 0x1.921fb54442d19p+0 : inexact-ok
+= atan2 downward intel96 0x8p-152 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest intel96 0x8p-152 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero intel96 0x8p-152 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward intel96 0x8p-152 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward m68k96 0x8p-152 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest m68k96 0x8p-152 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero m68k96 0x8p-152 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward m68k96 0x8p-152 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward binary128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 tonearest binary128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 towardzero binary128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 upward binary128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc51701b9p+0 : inexact-ok
+= atan2 downward ibm128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 tonearest ibm128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 towardzero ibm128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 upward ibm128 0x8p-152 0x0p+0 : 0x1.921fb54442d18469898cc51702p+0 : inexact-ok
+= atan2 downward binary64 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 tonearest binary64 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 towardzero binary64 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 upward binary64 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d19p+0 : inexact-ok
+= atan2 downward intel96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest intel96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero intel96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward intel96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward m68k96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest m68k96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero m68k96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward m68k96 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward binary128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 tonearest binary128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 towardzero binary128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 upward binary128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc51701b9p+0 : inexact-ok
+= atan2 downward ibm128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 tonearest ibm128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 towardzero ibm128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 upward ibm128 0x8p-152 0x1.b7be6f5a03a8cp-588 : 0x1.921fb54442d18469898cc51702p+0 : inexact-ok
+= atan2 downward binary32 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary32 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary32 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward binary32 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward binary64 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary64 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary64 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward binary64 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward intel96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest intel96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero intel96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward intel96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward m68k96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest m68k96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero m68k96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward m68k96 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward binary128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward binary128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward ibm128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 tonearest ibm128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 towardzero ibm128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 upward ibm128 0x0p+0 0x8p-152 : 0x0p+0 : inexact-ok
+= atan2 downward binary32 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary32 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary32 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward binary32 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward binary64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward binary64 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward intel96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest intel96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero intel96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward intel96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward m68k96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest m68k96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero m68k96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward m68k96 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward binary128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward binary128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward ibm128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 tonearest ibm128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 towardzero ibm128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 upward ibm128 0x0p+0 0x0p+0 : 0x0p+0 : inexact-ok
+= atan2 downward binary64 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary64 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary64 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 upward binary64 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 downward intel96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 tonearest intel96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 towardzero intel96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 upward intel96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 downward m68k96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 tonearest m68k96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 towardzero m68k96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 upward m68k96 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 downward binary128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 tonearest binary128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 towardzero binary128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 upward binary128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 downward ibm128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 tonearest ibm128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 towardzero ibm128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 upward ibm128 0x0p+0 0x1.b7be6f5a03a8cp-588 : 0x0p+0 : inexact-ok
+= atan2 downward binary64 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c5p-440 : inexact-ok
+= atan2 tonearest binary64 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 towardzero binary64 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c5p-440 : inexact-ok
+= atan2 upward binary64 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 downward intel96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffcp-440 : inexact-ok
+= atan2 tonearest intel96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 towardzero intel96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffcp-440 : inexact-ok
+= atan2 upward intel96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 downward m68k96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffcp-440 : inexact-ok
+= atan2 tonearest m68k96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 towardzero m68k96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffcp-440 : inexact-ok
+= atan2 upward m68k96 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 downward binary128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffffffffffffffep-440 : inexact-ok
+= atan2 tonearest binary128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 towardzero binary128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51ffffffffffffffep-440 : inexact-ok
+= atan2 upward binary128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 downward ibm128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51fffffffffffffp-440 : inexact-ok
+= atan2 tonearest ibm128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 towardzero ibm128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c51fffffffffffffp-440 : inexact-ok
+= atan2 upward ibm128 0x1.b836ed678be29p-588 0x8p-152 : 0x3.706ddacf17c52p-440 : inexact-ok
+= atan2 downward binary64 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 tonearest binary64 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 towardzero binary64 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18p+0 : inexact-ok
+= atan2 upward binary64 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d19p+0 : inexact-ok
+= atan2 downward intel96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest intel96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero intel96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward intel96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward m68k96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 tonearest m68k96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 towardzero m68k96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18468p+0 : inexact-ok
+= atan2 upward m68k96 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d1846ap+0 : inexact-ok
+= atan2 downward binary128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 tonearest binary128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 towardzero binary128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc51701b8p+0 : inexact-ok
+= atan2 upward binary128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc51701b9p+0 : inexact-ok
+= atan2 downward ibm128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 tonearest ibm128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 towardzero ibm128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc517018p+0 : inexact-ok
+= atan2 upward ibm128 0x1.b836ed678be29p-588 0x0p+0 : 0x1.921fb54442d18469898cc51702p+0 : inexact-ok
+= atan2 downward binary64 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e87412478p-4 : inexact-ok
+= atan2 tonearest binary64 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e87412478p-4 : inexact-ok
+= atan2 towardzero binary64 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e87412478p-4 : inexact-ok
+= atan2 upward binary64 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124788p-4 : inexact-ok
+= atan2 downward intel96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cap-4 : inexact-ok
+= atan2 tonearest intel96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cbp-4 : inexact-ok
+= atan2 towardzero intel96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cap-4 : inexact-ok
+= atan2 upward intel96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cbp-4 : inexact-ok
+= atan2 downward m68k96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cap-4 : inexact-ok
+= atan2 tonearest m68k96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cbp-4 : inexact-ok
+= atan2 towardzero m68k96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cap-4 : inexact-ok
+= atan2 upward m68k96 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780cbp-4 : inexact-ok
+= atan2 downward binary128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb72b8p-4 : inexact-ok
+= atan2 tonearest binary128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb72cp-4 : inexact-ok
+= atan2 towardzero binary128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb72b8p-4 : inexact-ok
+= atan2 upward binary128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb72cp-4 : inexact-ok
+= atan2 downward ibm128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb7p-4 : inexact-ok
+= atan2 tonearest ibm128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb74p-4 : inexact-ok
+= atan2 towardzero ibm128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb7p-4 : inexact-ok
+= atan2 upward ibm128 0x1.b836ed678be29p-588 0x1.b7be6f5a03a8cp-588 : 0xc.932e874124780ca850c92ebb74p-4 : inexact-ok
 atan2 0x1.41df5aa214612c7e019fa6ade88p-13316 0x5.e53b26a270a29eb9f77ef8ef7af8p-13316
 = atan2 downward binary32 0x8p-152 0x8p-152 : 0xc.90fdap-4 : inexact-ok
 = atan2 tonearest binary32 0x8p-152 0x8p-152 : 0xc.90fdbp-4 : inexact-ok
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 325e4b5b84..90e6face00 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -214,10 +214,10 @@  double: 1
 float: 2
 
 Function: "atan2_vlen4_avx2":
-double: 1
+double: 2
 
 Function: "atan2_vlen8":
-double: 1
+double: 2
 float: 2
 
 Function: "atan2_vlen8_avx2":