diff options
author | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-08-15 18:01:53 +0100 |
---|---|---|
committer | Wilco Dijkstra <wilco.dijkstra@arm.com> | 2023-09-18 11:50:23 +0100 |
commit | 5bc9b3a1f6a003f6456f717b590615ea98e2d6fb (patch) | |
tree | 39c7b1ac8c2afca1ad7467c6c281cd166fddec0f | |
parent | bb5bbc20702981c287aa3e44640e7d2f2b9a28cf (diff) | |
download | glibc-5bc9b3a1f6a003f6456f717b590615ea98e2d6fb.tar.gz glibc-5bc9b3a1f6a003f6456f717b590615ea98e2d6fb.tar.xz glibc-5bc9b3a1f6a003f6456f717b590615ea98e2d6fb.zip |
math: Add a no-mathvec flag for sin (-0.0)
Add support for a no-mathvec flag to gen-auto-libm-tests.c. Update input test sin (-0.0) to be skipped in vector math libraries and regenerate testcases. Reviewed-By: Paul Zimmermann <Paul.Zimmermann@inria.fr>
-rw-r--r-- | math/auto-libm-test-in | 2 | ||||
-rw-r--r-- | math/auto-libm-test-out-sin | 50 | ||||
-rw-r--r-- | math/gen-auto-libm-tests.c | 6 | ||||
-rwxr-xr-x | math/gen-libm-test.py | 3 |
4 files changed, 33 insertions, 28 deletions
diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index c400cafb4b..2672eb1f6a 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -7318,7 +7318,7 @@ pow 0x1.7ac7cp+5 23 pow -0x1.7ac7cp+5 23 sin 0 -sin -0 +sin -0 no-mathvec sin pi/6 sin -pi/6 sin pi/2 diff --git a/math/auto-libm-test-out-sin b/math/auto-libm-test-out-sin index f1d21b179c..e1f6845283 100644 --- a/math/auto-libm-test-out-sin +++ b/math/auto-libm-test-out-sin @@ -23,31 +23,31 @@ sin 0 = sin tonearest ibm128 0x0p+0 : 0x0p+0 : inexact-ok = sin towardzero ibm128 0x0p+0 : 0x0p+0 : inexact-ok = sin upward ibm128 0x0p+0 : 0x0p+0 : inexact-ok -sin -0 -= sin downward binary32 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest binary32 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero binary32 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward binary32 -0x0p+0 : -0x0p+0 : inexact-ok -= sin downward binary64 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest binary64 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero binary64 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward binary64 -0x0p+0 : -0x0p+0 : inexact-ok -= sin downward intel96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest intel96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero intel96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward intel96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin downward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest m68k96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero m68k96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward m68k96 -0x0p+0 : -0x0p+0 : inexact-ok -= sin downward binary128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest binary128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero binary128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward binary128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin downward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin tonearest ibm128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin towardzero ibm128 -0x0p+0 : -0x0p+0 : inexact-ok -= sin upward ibm128 -0x0p+0 : -0x0p+0 : inexact-ok +sin -0 no-mathvec += sin downward binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward binary32 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin downward binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward binary64 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin downward intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward intel96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin downward m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward m68k96 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin downward binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward binary128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin downward ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin tonearest ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin towardzero ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok += sin upward ibm128 -0x0p+0 : -0x0p+0 : no-mathvec inexact-ok sin pi/6 = sin downward binary32 0x8.60a92p-4 : 0x8p-4 : inexact-ok = sin tonearest binary32 0x8.60a92p-4 : 0x8p-4 : inexact-ok diff --git a/math/gen-auto-libm-tests.c b/math/gen-auto-libm-tests.c index 12aba4c8ee..f0ee6edba9 100644 --- a/math/gen-auto-libm-tests.c +++ b/math/gen-auto-libm-tests.c @@ -96,7 +96,8 @@ 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 + modes other than round-to-nearest; "no-mathvec" indicates the test + is disabled in vector math libraries. 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 @@ -352,6 +353,7 @@ typedef enum flag_missing_overflow, flag_missing_underflow, flag_missing_errno, + flag_no_mathvec, num_input_flag_types, flag_first_flag = 0, flag_spurious_first = flag_spurious_divbyzero, @@ -377,6 +379,7 @@ static const char *const input_flags[num_input_flag_types] = "missing-overflow", "missing-underflow", "missing-errno", + "no-mathvec", }; /* An input flag, possibly conditional. */ @@ -2049,6 +2052,7 @@ output_for_one_input_case (FILE *fp, const char *filename, test_function *tf, { case flag_ignore_zero_inf_sign: case flag_xfail: + case flag_no_mathvec: if (fprintf (fp, " %s%s", input_flags[it->flags[i].type], (it->flags[i].cond diff --git a/math/gen-libm-test.py b/math/gen-libm-test.py index 6ae78beb01..a573c3b8cb 100755 --- a/math/gen-libm-test.py +++ b/math/gen-libm-test.py @@ -93,7 +93,8 @@ BEAUTIFY_MAP = {'minus_zero': '-0', # Flags in auto-libm-test-out that map directly to C flags. FLAGS_SIMPLE = {'ignore-zero-inf-sign': 'IGNORE_ZERO_INF_SIGN', - 'xfail': 'XFAIL_TEST'} + 'xfail': 'XFAIL_TEST', + 'no-mathvec': 'NO_TEST_MATHVEC'} # Exceptions in auto-libm-test-out, and their corresponding C flags # for being required, OK or required to be absent. |