This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch master updated. glibc-2.19-647-g863893e


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  863893ec95f316a3d156d487b99242ee1b52f803 (commit)
      from  4da6db51880289f0bf41b39e05cf9bb1c4769c47 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=863893ec95f316a3d156d487b99242ee1b52f803

commit 863893ec95f316a3d156d487b99242ee1b52f803
Author: Joseph Myers <joseph@codesourcery.com>
Date:   Mon Jun 23 20:15:14 2014 +0000

    Test cpow in all rounding modes.
    
    This patch enables testing of cpow in all rounding modes using
    ALL_RM_TEST.  There were two reasons this was previously deferred:
    
    * MPC has complicated rounding-mode-dependent rules for the signs of
      exact zero real or imaginary parts in the result of mpc_pow.  Annex
      G does not impose any such requirements and I don't think glibc
      should try to implement any particular logic here.  This patch adds
      support for gen-auto-libm-tests passing the IGNORE_ZERO_INF_SIGN
      flag to libm-test.inc.
    
    * Error accumulations in some tests in non-default rounding modes
      exceed the maximum error permitted in libm-test.inc.  This patch
      marks the problem tests with xfail-rounding.  (It might be possible
      to reduce the accumulations a bit by using round-to-nearest when
      cpow calls clog, but I don't think there's much point; the
      implementation approach for cpow is fundamentally deficient, as
      discussed in the existing bug for cpow inaccuracy which can
      reasonably be considered to cover these less-inaccurate cases as
      well.  It's possible that the test "cpow 2 0 10 0" will also need
      xfail-rounding on some platforms.)
    
    Tested x86_64 and x86 and ulps updated accordingly.
    
    	* math/gen-auto-libm-tests.c: Document use of
    	ignore-zero-inf-sign.
    	(input_flag_type): Add value flag_ignore_zero_inf_sign.
    	(input_flags): Add ignore-zero-inf-sign.
    	(output_for_one_input_case): Handle flag_ignore_zero_inf_sign.
    	* math/gen-libm-test.pl (generate_testfile): Handle
    	ignore-zero-inf-sign.
    	* math/auto-libm-test-in: Mark some cpow tests with
    	ignore-zero-inf-sign and some with xfail-rounding.
    	* math/auto-libm-test-out: Regenerated.
    	* math/libm-test.inc (cpow_test): Use ALL_RM_TEST.
    	* sysdeps/i386/fpu/libm-test-ulps: Update.
    	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

diff --git a/ChangeLog b/ChangeLog
index e8947fb..54aaeae 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,19 @@
 2014-06-23  Joseph Myers  <joseph@codesourcery.com>
 
+	* math/gen-auto-libm-tests.c: Document use of
+	ignore-zero-inf-sign.
+	(input_flag_type): Add value flag_ignore_zero_inf_sign.
+	(input_flags): Add ignore-zero-inf-sign.
+	(output_for_one_input_case): Handle flag_ignore_zero_inf_sign.
+	* math/gen-libm-test.pl (generate_testfile): Handle
+	ignore-zero-inf-sign.
+	* math/auto-libm-test-in: Mark some cpow tests with
+	ignore-zero-inf-sign and some with xfail-rounding.
+	* math/auto-libm-test-out: Regenerated.
+	* math/libm-test.inc (cpow_test): Use ALL_RM_TEST.
+	* sysdeps/i386/fpu/libm-test-ulps: Update.
+	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.
+
 	[BZ #16315]
 	* sysdeps/i386/fpu/e_pow.S (__ieee754_pow): Ensure possibly
 	overflowing or underflowing operations take place with sign of
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in
index 0053340..673a444 100644
--- a/math/auto-libm-test-in
+++ b/math/auto-libm-test-in
@@ -652,14 +652,14 @@ cosh 0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128
 cosh -0x2.c5d37700c6bb03a6c24b6c9b494cp+12 no-test-inline xfail-rounding:ldbl-128ibm
 cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-128ibm
 
-cpow 1 0 0 0
-cpow 2 0 10 0
+cpow 1 0 0 0 ignore-zero-inf-sign
+cpow 2 0 10 0 ignore-zero-inf-sign
 # Bug 14473: cpow results inaccurate.
 cpow e 0 0 2pi xfail
-cpow 2 3 4 0
+cpow 2 3 4 0 xfail-rounding
 
-cpow 0.75 1.25 0.75 1.25
-cpow 0.75 1.25 1.0 1.0
+cpow 0.75 1.25 0.75 1.25 xfail-rounding
+cpow 0.75 1.25 1.0 1.0 xfail-rounding
 cpow 0.75 1.25 1.0 0.0
 cpow 0.75 1.25 0.0 1.0
 
diff --git a/math/auto-libm-test-out b/math/auto-libm-test-out
index a1f33d7..aad46a4 100644
--- a/math/auto-libm-test-out
+++ b/math/auto-libm-test-out
@@ -77937,56 +77937,56 @@ cosh -0x2.c5d37700c6bb03a6c24b6c9b494ep+12 no-test-inline xfail-rounding:ldbl-12
 = cosh tonearest ldbl-128ibm -0x2.c5d37700c6bb03a6c24b6c9b4ap+12L : plus_infty : no-test-inline inexact-ok overflow errno-erange
 = cosh towardzero ldbl-128ibm -0x2.c5d37700c6bb03a6c24b6c9b4ap+12L : 0xf.ffffffffffffbffffffffffffcp+1020L : no-test-inline xfail:ldbl-128ibm inexact-ok overflow errno-erange-ok
 = cosh upward ldbl-128ibm -0x2.c5d37700c6bb03a6c24b6c9b4ap+12L : plus_infty : no-test-inline xfail:ldbl-128ibm inexact-ok overflow errno-erange
-cpow 1 0 0 0
-= cpow downward flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f -0x0p+0f : inexact-ok
-= cpow tonearest flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : inexact-ok
-= cpow towardzero flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : inexact-ok
-= cpow upward flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : inexact-ok
-= cpow downward dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 -0x0p+0 : inexact-ok
-= cpow tonearest dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : inexact-ok
-= cpow towardzero dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : inexact-ok
-= cpow upward dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : inexact-ok
-= cpow downward ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow upward ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow downward ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow upward ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow downward ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-= cpow upward ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : inexact-ok
-cpow 2 0 10 0
-= cpow downward flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f -0x0p+0f : inexact-ok
-= cpow tonearest flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : inexact-ok
-= cpow towardzero flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : inexact-ok
-= cpow upward flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : inexact-ok
-= cpow downward dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 -0x0p+0 : inexact-ok
-= cpow tonearest dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : inexact-ok
-= cpow towardzero dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : inexact-ok
-= cpow upward dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : inexact-ok
-= cpow downward ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow upward ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow downward ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow upward ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow downward ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow upward ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow downward ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : inexact-ok
-= cpow tonearest ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow towardzero ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
-= cpow upward ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : inexact-ok
+cpow 1 0 0 0 ignore-zero-inf-sign
+= cpow downward flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f -0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow tonearest flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow towardzero flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow upward flt-32 0x1p+0f 0x0p+0f 0x0p+0f 0x0p+0f : 0x1p+0f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow downward dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 -0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow tonearest dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow towardzero dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow upward dbl-64 0x1p+0 0x0p+0 0x0p+0 0x0p+0 : 0x1p+0 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-96-intel 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-96-m68k 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-128 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-128ibm 0x1p+0L 0x0p+0L 0x0p+0L 0x0p+0L : 0x1p+0L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+cpow 2 0 10 0 ignore-zero-inf-sign
+= cpow downward flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f -0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow tonearest flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow towardzero flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow upward flt-32 0x2p+0f 0x0p+0f 0xap+0f 0x0p+0f : 0x4p+8f 0x0p+0f : ignore-zero-inf-sign inexact-ok
+= cpow downward dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 -0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow tonearest dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow towardzero dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow upward dbl-64 0x2p+0 0x0p+0 0xap+0 0x0p+0 : 0x4p+8 0x0p+0 : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-96-intel 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-96-m68k 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-128 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow downward ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L -0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow tonearest ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow towardzero ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
+= cpow upward ldbl-128ibm 0x2p+0L 0x0p+0L 0xap+0L 0x0p+0L : 0x4p+8L 0x0p+0L : ignore-zero-inf-sign inexact-ok
 cpow e 0 0 2pi xfail
 = cpow downward flt-32 0x2.b7e154p+0f 0x0p+0f 0x0p+0f 0x6.487ed8p+0f : 0xf.fffffp-4f 0x8.fa605p-24f : xfail inexact-ok
 = cpow tonearest flt-32 0x2.b7e154p+0f 0x0p+0f 0x0p+0f 0x6.487ed8p+0f : 0x1p+0f 0x8.fa605p-24f : xfail inexact-ok
@@ -79012,81 +79012,81 @@ cpow e 0 0 2pi xfail
 = cpow tonearest ldbl-128ibm 0x2.b7e151628aed2a6abf7158809cp+0L 0x0p+0L 0x0p+0L 0x6.487ed5110b4611a62633145c06p+0L : 0x1p+0L -0x3.1718b9f46bd64de2f0226f7109p-104L : xfail inexact-ok
 = cpow towardzero ldbl-128ibm 0x2.b7e151628aed2a6abf7158809cp+0L 0x0p+0L 0x0p+0L 0x6.487ed5110b4611a62633145c06p+0L : 0xf.fffffffffffffffffffffffffcp-4L -0x3.1718b9f46bd64de2f0226f7108p-104L : xfail inexact-ok
 = cpow upward ldbl-128ibm 0x2.b7e151628aed2a6abf7158809cp+0L 0x0p+0L 0x0p+0L 0x6.487ed5110b4611a62633145c06p+0L : 0x1p+0L -0x3.1718b9f46bd64de2f0226f7108p-104L : xfail inexact-ok
-cpow 2 3 4 0
-= cpow downward flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : inexact-ok
+cpow 2 3 4 0 xfail-rounding
+= cpow downward flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : xfail inexact-ok
 = cpow tonearest flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : inexact-ok
-= cpow towardzero flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : inexact-ok
-= cpow upward flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : inexact-ok
-= cpow downward dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : inexact-ok
+= cpow towardzero flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : xfail inexact-ok
+= cpow upward flt-32 0x2p+0f 0x3p+0f 0x4p+0f 0x0p+0f : -0x7.7p+4f -0x7.8p+4f : xfail inexact-ok
+= cpow downward dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : xfail inexact-ok
 = cpow tonearest dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : inexact-ok
-= cpow towardzero dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : inexact-ok
-= cpow upward dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : inexact-ok
-= cpow downward ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
+= cpow towardzero dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : xfail inexact-ok
+= cpow upward dbl-64 0x2p+0 0x3p+0 0x4p+0 0x0p+0 : -0x7.7p+4 -0x7.8p+4 : xfail inexact-ok
+= cpow downward ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
 = cpow tonearest ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow towardzero ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow upward ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow downward ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
+= cpow towardzero ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow upward ldbl-96-intel 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow downward ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
 = cpow tonearest ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow towardzero ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow upward ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow downward ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
+= cpow towardzero ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow upward ldbl-96-m68k 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow downward ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
 = cpow tonearest ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow towardzero ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow upward ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow downward ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
+= cpow towardzero ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow upward ldbl-128 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow downward ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
 = cpow tonearest ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow towardzero ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-= cpow upward ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : inexact-ok
-cpow 0.75 1.25 0.75 1.25
-= cpow downward flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e46p-4f 0x5.8b7aep-4f : inexact-ok
+= cpow towardzero ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+= cpow upward ldbl-128ibm 0x2p+0L 0x3p+0L 0x4p+0L 0x0p+0L : -0x7.7p+4L -0x7.8p+4L : xfail inexact-ok
+cpow 0.75 1.25 0.75 1.25 xfail-rounding
+= cpow downward flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e46p-4f 0x5.8b7aep-4f : xfail inexact-ok
 = cpow tonearest flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e48p-4f 0x5.8b7ae8p-4f : inexact-ok
-= cpow towardzero flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e46p-4f 0x5.8b7aep-4f : inexact-ok
-= cpow upward flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e48p-4f 0x5.8b7ae8p-4f : inexact-ok
-= cpow downward dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f1p-4 0x5.8b7ae4dbf0a78p-4 : inexact-ok
+= cpow towardzero flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e46p-4f 0x5.8b7aep-4f : xfail inexact-ok
+= cpow upward flt-32 0xcp-4f 0x1.4p+0f 0xcp-4f 0x1.4p+0f : 0x1.e14e48p-4f 0x5.8b7ae8p-4f : xfail inexact-ok
+= cpow downward dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f1p-4 0x5.8b7ae4dbf0a78p-4 : xfail inexact-ok
 = cpow tonearest dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f1p-4 0x5.8b7ae4dbf0a78p-4 : inexact-ok
-= cpow towardzero dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f1p-4 0x5.8b7ae4dbf0a78p-4 : inexact-ok
-= cpow upward dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f2p-4 0x5.8b7ae4dbf0a7cp-4 : inexact-ok
-= cpow downward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : inexact-ok
+= cpow towardzero dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f1p-4 0x5.8b7ae4dbf0a78p-4 : xfail inexact-ok
+= cpow upward dbl-64 0xcp-4 0x1.4p+0 0xcp-4 0x1.4p+0 : 0x1.e14e4796fd3f2p-4 0x5.8b7ae4dbf0a7cp-4 : xfail inexact-ok
+= cpow downward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : xfail inexact-ok
 = cpow tonearest ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : inexact-ok
-= cpow towardzero ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : inexact-ok
-= cpow upward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : inexact-ok
-= cpow downward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : inexact-ok
+= cpow towardzero ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : xfail inexact-ok
+= cpow upward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : xfail inexact-ok
+= cpow downward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : xfail inexact-ok
 = cpow tonearest ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : inexact-ok
-= cpow towardzero ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : inexact-ok
-= cpow upward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : inexact-ok
-= cpow downward ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e3p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bb8p-4L : inexact-ok
+= cpow towardzero ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16p-4L 0x5.8b7ae4dbf0a7933p-4L : xfail inexact-ok
+= cpow upward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f1602p-4L 0x5.8b7ae4dbf0a79338p-4L : xfail inexact-ok
+= cpow downward ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e3p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bb8p-4L : xfail inexact-ok
 = cpow tonearest ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e3p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bbcp-4L : inexact-ok
-= cpow towardzero ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e3p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bb8p-4L : inexact-ok
-= cpow upward ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e4p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bbcp-4L : inexact-ok
-= cpow downward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb014858p-4L 0x5.8b7ae4dbf0a7933416f4a46c0ap-4L : inexact-ok
+= cpow towardzero ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e3p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bb8p-4L : xfail inexact-ok
+= cpow upward ldbl-128 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01485e4p-4L 0x5.8b7ae4dbf0a7933416f4a46c0bbcp-4L : xfail inexact-ok
+= cpow downward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb014858p-4L 0x5.8b7ae4dbf0a7933416f4a46c0ap-4L : xfail inexact-ok
 = cpow tonearest ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01486p-4L 0x5.8b7ae4dbf0a7933416f4a46c0cp-4L : inexact-ok
-= cpow towardzero ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb014858p-4L 0x5.8b7ae4dbf0a7933416f4a46c0ap-4L : inexact-ok
-= cpow upward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01486p-4L 0x5.8b7ae4dbf0a7933416f4a46c0cp-4L : inexact-ok
-cpow 0.75 1.25 1.0 1.0
-= cpow downward flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea02p-4f 0x8.366b1p-4f : inexact-ok
+= cpow towardzero ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb014858p-4L 0x5.8b7ae4dbf0a7933416f4a46c0ap-4L : xfail inexact-ok
+= cpow upward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0xcp-4L 0x1.4p+0L : 0x1.e14e4796fd3f16019f9eb01486p-4L 0x5.8b7ae4dbf0a7933416f4a46c0cp-4L : xfail inexact-ok
+cpow 0.75 1.25 1.0 1.0 xfail-rounding
+= cpow downward flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea02p-4f 0x8.366b1p-4f : xfail inexact-ok
 = cpow tonearest flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea04p-4f 0x8.366b2p-4f : inexact-ok
-= cpow towardzero flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea02p-4f 0x8.366b1p-4f : inexact-ok
-= cpow upward flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea04p-4f 0x8.366b2p-4f : inexact-ok
-= cpow downward dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815ap-4 0x8.366b1e23e511p-4 : inexact-ok
+= cpow towardzero flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea02p-4f 0x8.366b1p-4f : xfail inexact-ok
+= cpow upward flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x1p+0f : 0x1.5aea04p-4f 0x8.366b2p-4f : xfail inexact-ok
+= cpow downward dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815ap-4 0x8.366b1e23e511p-4 : xfail inexact-ok
 = cpow tonearest dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815bp-4 0x8.366b1e23e5118p-4 : inexact-ok
-= cpow towardzero dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815ap-4 0x8.366b1e23e511p-4 : inexact-ok
-= cpow upward dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815bp-4 0x8.366b1e23e5118p-4 : inexact-ok
-= cpow downward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : inexact-ok
+= cpow towardzero dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815ap-4 0x8.366b1e23e511p-4 : xfail inexact-ok
+= cpow upward dbl-64 0xcp-4 0x1.4p+0 0x1p+0 0x1p+0 : 0x1.5aea037cc815bp-4 0x8.366b1e23e5118p-4 : xfail inexact-ok
+= cpow downward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : xfail inexact-ok
 = cpow tonearest ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511576p-4L : inexact-ok
-= cpow towardzero ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : inexact-ok
-= cpow upward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad18p-4L 0x8.366b1e23e511576p-4L : inexact-ok
-= cpow downward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : inexact-ok
+= cpow towardzero ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : xfail inexact-ok
+= cpow upward ldbl-96-intel 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad18p-4L 0x8.366b1e23e511576p-4L : xfail inexact-ok
+= cpow downward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : xfail inexact-ok
 = cpow tonearest ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511576p-4L : inexact-ok
-= cpow towardzero ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : inexact-ok
-= cpow upward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad18p-4L 0x8.366b1e23e511576p-4L : inexact-ok
-= cpow downward ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37cp-4L 0x8.366b1e23e511575a102515116418p-4L : inexact-ok
+= cpow towardzero ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16p-4L 0x8.366b1e23e511575p-4L : xfail inexact-ok
+= cpow upward ldbl-96-m68k 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad18p-4L 0x8.366b1e23e511576p-4L : xfail inexact-ok
+= cpow downward ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37cp-4L 0x8.366b1e23e511575a102515116418p-4L : xfail inexact-ok
 = cpow tonearest ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37dp-4L 0x8.366b1e23e511575a102515116418p-4L : inexact-ok
-= cpow towardzero ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37cp-4L 0x8.366b1e23e511575a102515116418p-4L : inexact-ok
-= cpow upward ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37dp-4L 0x8.366b1e23e511575a10251511642p-4L : inexact-ok
-= cpow downward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae3p-4L 0x8.366b1e23e511575a1025151164p-4L : inexact-ok
+= cpow towardzero ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37cp-4L 0x8.366b1e23e511575a102515116418p-4L : xfail inexact-ok
+= cpow upward ldbl-128 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae37dp-4L 0x8.366b1e23e511575a10251511642p-4L : xfail inexact-ok
+= cpow downward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae3p-4L 0x8.366b1e23e511575a1025151164p-4L : xfail inexact-ok
 = cpow tonearest ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae38p-4L 0x8.366b1e23e511575a1025151164p-4L : inexact-ok
-= cpow towardzero ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae3p-4L 0x8.366b1e23e511575a1025151164p-4L : inexact-ok
-= cpow upward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae38p-4L 0x8.366b1e23e511575a1025151168p-4L : inexact-ok
+= cpow towardzero ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae3p-4L 0x8.366b1e23e511575a1025151164p-4L : xfail inexact-ok
+= cpow upward ldbl-128ibm 0xcp-4L 0x1.4p+0L 0x1p+0L 0x1p+0L : 0x1.5aea037cc815ad16ef12e71ae38p-4L 0x8.366b1e23e511575a1025151168p-4L : xfail inexact-ok
 cpow 0.75 1.25 1.0 0.0
 = cpow downward flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x0p+0f : 0xcp-4f 0x1.4p+0f : inexact-ok
 = cpow tonearest flt-32 0xcp-4f 0x1.4p+0f 0x1p+0f 0x0p+0f : 0xcp-4f 0x1.4p+0f : inexact-ok
diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c
index 132cca2..12c530a 100644
--- a/math/gen-auto-libm-tests.c
+++ b/math/gen-auto-libm-tests.c
@@ -84,15 +84,16 @@
    permitted), errno is expected to be left unchanged.
 
    The flag "no-test-inline" indicates a test is disabled for inline
-   function testing; "xfail" indicates the test is disabled as
-   expected to produce incorrect results, "xfail-rounding" indicates
-   the test is disabled only in rounding modes other than
-   round-to-nearest.  Otherwise, test flags are of the form
-   "spurious-<exception>" and "missing-<exception>", for any exception
-   ("overflow", "underflow", "inexact", "invalid", "divbyzero"),
-   "spurious-errno" and "missing-errno", to indicate when tests are
-   expected to deviate from the exception and errno settings
-   corresponding to the mathematical results.  "xfail",
+   function testing; "ignore-zero-inf-sign" indicates the the signs of
+   zero and infinite results should be ignored; "xfail" indicates the
+   test is disabled as expected to produce incorrect results,
+   "xfail-rounding" indicates the test is disabled only in rounding
+   modes other than round-to-nearest.  Otherwise, test flags are of
+   the form "spurious-<exception>" and "missing-<exception>", for any
+   exception ("overflow", "underflow", "inexact", "invalid",
+   "divbyzero"), "spurious-errno" and "missing-errno", to indicate
+   when tests are expected to deviate from the exception and errno
+   settings corresponding to the mathematical results.  "xfail",
    "xfail-rounding", "spurious-" and "missing-" flags should be
    accompanied by a comment referring to an open bug in glibc
    Bugzilla.
@@ -109,17 +110,17 @@
    plus_infty or minus_infty for infinite expected results, or as
    integer constant expressions (not necessarily with the right type)
    or IGNORE for integer inputs and outputs.  Flags are
-   "no-test-inline", "xfail", "<exception>", "<exception>-ok",
-   "errno-<value>", "errno-<value>-ok", which may be unconditional or
-   conditional.  "<exception>" indicates that a correct result means
-   the given exception should be raised.  "errno-<value>" indicates
-   that a correct result means errno should be set to the given value.
-   "-ok" means not to test for the given exception or errno value
-   (whether because it was marked as possibly missing or spurious, or
-   because the calculation of correct results indicated it was
-   optional).  Conditions "before-rounding" and "after-rounding"
-   indicate tests where expectations for underflow exceptions depend
-   on how the architecture detects tininess.  */
+   "no-test-inline", "ignore-zero-info-sign", "xfail", "<exception>",
+   "<exception>-ok", "errno-<value>", "errno-<value>-ok", which may be
+   unconditional or conditional.  "<exception>" indicates that a
+   correct result means the given exception should be raised.
+   "errno-<value>" indicates that a correct result means errno should
+   be set to the given value.  "-ok" means not to test for the given
+   exception or errno value (whether because it was marked as possibly
+   missing or spurious, or because the calculation of correct results
+   indicated it was optional).  Conditions "before-rounding" and
+   "after-rounding" indicate tests where expectations for underflow
+   exceptions depend on how the architecture detects tininess.  */
 
 #define _GNU_SOURCE
 
@@ -315,6 +316,7 @@ typedef struct
 typedef enum
   {
     flag_no_test_inline,
+    flag_ignore_zero_inf_sign,
     flag_xfail,
     flag_xfail_rounding,
     /* The "spurious" and "missing" flags must be in the same order as
@@ -342,6 +344,7 @@ typedef enum
 static const char *const input_flags[num_input_flag_types] =
   {
     "no-test-inline",
+    "ignore-zero-inf-sign",
     "xfail",
     "xfail-rounding",
     "spurious-divbyzero",
@@ -1950,6 +1953,7 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf,
 		switch (it->flags[i].type)
 		  {
 		  case flag_no_test_inline:
+		  case flag_ignore_zero_inf_sign:
 		  case flag_xfail:
 		    if (fprintf (fp, " %s%s",
 				 input_flags[it->flags[i].type],
diff --git a/math/gen-libm-test.pl b/math/gen-libm-test.pl
index 5f62872..b5d599f 100755
--- a/math/gen-libm-test.pl
+++ b/math/gen-libm-test.pl
@@ -442,6 +442,10 @@ sub generate_testfile {
 	    }
 	  }
 	  $flags_conv = "";
+	  if (defined ($flag_cond{"ignore-zero-inf-sign"})) {
+	    $flags_conv .= or_cond_value ($flag_cond{"ignore-zero-inf-sign"},
+					  "IGNORE_ZERO_INF_SIGN", "0");
+	  }
 	  if (defined ($flag_cond{"no-test-inline"})) {
 	    $flags_conv .= or_cond_value ($flag_cond{"no-test-inline"},
 					  "NO_TEST_INLINE", "0");
diff --git a/math/libm-test.inc b/math/libm-test.inc
index c138778..45eaaef 100644
--- a/math/libm-test.inc
+++ b/math/libm-test.inc
@@ -6288,9 +6288,7 @@ static const struct test_cc_c_data cpow_test_data[] =
 static void
 cpow_test (void)
 {
-  START (cpow, 0);
-  RUN_TEST_LOOP_cc_c (cpow, cpow_test_data, );
-  END_COMPLEX;
+  ALL_RM_TEST (cpow, 0, cpow_test_data, RUN_TEST_LOOP_cc_c, END_COMPLEX);
 }
 
 
diff --git a/sysdeps/i386/fpu/libm-test-ulps b/sysdeps/i386/fpu/libm-test-ulps
index eb934e3..8d9c83d 100644
--- a/sysdeps/i386/fpu/libm-test-ulps
+++ b/sysdeps/i386/fpu/libm-test-ulps
@@ -916,6 +916,54 @@ ifloat: 1
 ildouble: 4
 ldouble: 4
 
+Function: Real part of "cpow_downward":
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
+ildouble: 7
+ldouble: 7
+
+Function: Imaginary part of "cpow_downward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: Real part of "cpow_towardzero":
+double: 5
+float: 8
+idouble: 5
+ifloat: 8
+ildouble: 7
+ldouble: 7
+
+Function: Imaginary part of "cpow_towardzero":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 1
+ldouble: 1
+
+Function: Real part of "cpow_upward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cpow_upward":
+double: 1
+float: 1
+idouble: 1
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
 Function: Real part of "csin":
 double: 1
 float: 1
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps b/sysdeps/x86_64/fpu/libm-test-ulps
index 8edd40b..5469887 100644
--- a/sysdeps/x86_64/fpu/libm-test-ulps
+++ b/sysdeps/x86_64/fpu/libm-test-ulps
@@ -959,6 +959,54 @@ ifloat: 2
 ildouble: 4
 ldouble: 4
 
+Function: Real part of "cpow_downward":
+double: 4
+float: 8
+idouble: 4
+ifloat: 8
+ildouble: 7
+ldouble: 7
+
+Function: Imaginary part of "cpow_downward":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
+Function: Real part of "cpow_towardzero":
+double: 4
+float: 8
+idouble: 4
+ifloat: 8
+ildouble: 7
+ldouble: 7
+
+Function: Imaginary part of "cpow_towardzero":
+double: 2
+float: 2
+idouble: 2
+ifloat: 2
+ildouble: 1
+ldouble: 1
+
+Function: Real part of "cpow_upward":
+double: 4
+float: 1
+idouble: 4
+ifloat: 1
+ildouble: 2
+ldouble: 2
+
+Function: Imaginary part of "cpow_upward":
+double: 1
+float: 2
+idouble: 1
+ifloat: 2
+ildouble: 2
+ldouble: 2
+
 Function: Real part of "csin":
 double: 1
 float: 1

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                         |   14 +++
 math/auto-libm-test-in            |   10 +-
 math/auto-libm-test-out           |  214 ++++++++++++++++++------------------
 math/gen-auto-libm-tests.c        |   44 ++++----
 math/gen-libm-test.pl             |    4 +
 math/libm-test.inc                |    4 +-
 sysdeps/i386/fpu/libm-test-ulps   |   48 ++++++++
 sysdeps/x86_64/fpu/libm-test-ulps |   48 ++++++++
 8 files changed, 251 insertions(+), 135 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]