[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Commits] r23090 - in /fsf/trunk/libc: ./ benchtests/ math/ scripts/ sysdeps/ieee754/dbl-64/ sysdeps/powerpc/fpu/
- To: commits@xxxxxxxxxx
- Subject: [Commits] r23090 - in /fsf/trunk/libc: ./ benchtests/ math/ scripts/ sysdeps/ieee754/dbl-64/ sysdeps/powerpc/fpu/
- From: eglibc@xxxxxxxxxx
- Date: Sat, 18 May 2013 00:02:12 -0000
Author: eglibc
Date: Sat May 18 00:02:11 2013
New Revision: 23090
Log:
Import glibc-mainline for 2013-05-18
Modified:
fsf/trunk/libc/ChangeLog
fsf/trunk/libc/NEWS
fsf/trunk/libc/benchtests/bench-modf.c
fsf/trunk/libc/math/gen-libm-test.pl
fsf/trunk/libc/math/libm-test.inc
fsf/trunk/libc/scripts/bench.pl
fsf/trunk/libc/sysdeps/ieee754/dbl-64/e_remainder.c
fsf/trunk/libc/sysdeps/powerpc/fpu/e_hypot.c
fsf/trunk/libc/sysdeps/powerpc/fpu/e_hypotf.c
Modified: fsf/trunk/libc/ChangeLog
==============================================================================
--- fsf/trunk/libc/ChangeLog (original)
+++ fsf/trunk/libc/ChangeLog Sat May 18 00:02:11 2013
@@ -1,3 +1,130 @@
+2013-05-17 Joseph Myers <joseph@xxxxxxxxxxxxxxxx>
+
+ [BZ #15480]
+ [BZ #15485]
+ * sysdeps/ieee754/dbl-64/e_remainder.c (__ieee754_remainder): For
+ main case of finite arguments, set rounding mode to FE_TONEAREST
+ and discard exceptions.
+ * math/libm-test.inc (remainder_test_data): Disallow "inexact"
+ exceptions.
+ (remainder_tonearest_test_data): New variable.
+ (remainder_test_tonearest): New function.
+ (remainder_towardzero_test_data): New variable.
+ (remainder_test_towardzero): New function.
+ (remainder_downward_test_data): New variable.
+ (remainder_test_downward): New function.
+ (remainder_upward_test_data): New variable.
+ (remainder_test_upward): New function.
+ (main): Call the new test functions.
+
+ * math/libm-test.inc (struct test_f_f1_data): Remove field
+ extra_init.
+ (struct test_fF_f1_data): Likewise.
+ (struct test_ffI_f1_data): Likewise.
+ (RUN_TEST_f_f1): Remove argument EXTRA_INIT. Initialize EXTRA_VAR
+ based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_f_f1): Update call to RUN_TEST_f_f1.
+ (RUN_TEST_fF_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_fF_f1): Update call to RUN_TEST_fF_f1.
+ (RUN_TEST_fI_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_fI_f1): Update call to RUN_TEST_fI_f1.
+ (RUN_TEST_ffI_f1): Remove argument EXTRA_INIT. Initialize
+ EXTRA_VAR based on value of EXTRA_EXPECTED.
+ (RUN_TEST_LOOP_ffI_f1): Update call to RUN_TEST_ffI_f1.
+ * math/gen-libm-test.pl (parse_args): Don't output initializers
+ for extra output values.
+
+ * math/libm-test.inc (check_int): Expect result to be exactly
+ equal to expected value and do not handle ulps.
+ (check_long): Likewise.
+ (check_longlong): Likewise.
+
+ * math/libm-test.inc (ceil_test_data): Test for "inexact"
+ exceptions.
+ (cimag_test_data): Likewise.
+ (conj_test_data): Likewise.
+ (copysign_test_data): Likewise.
+ (cproj_test_data): Likewise.
+ (creal_test_data): Likewise.
+ (fabs_test_data): Likewise.
+ (fdim_test_data): Likewise.
+ (finite_test_data): Likewise.
+ (floor_test_data): Likewise.
+ (fmax_test_data): Likewise.
+ (fmin_test_data): Likewise.
+ (fmod_test_data): Likewise.
+ (fpclassify_test_data): Likewise.
+ (frexp_test_data): Likewise.
+ (ilogb_test_data): Likewise.
+ (isfinite_test_data): Likewise.
+ (isgreater_test_data): Likewise.
+ (isgreaterequal_test_data): Likewise.
+ (isinf_test_data): Likewise.
+ (isless_test_data): Likewise.
+ (islessequal_test_data): Likewise.
+ (islessgreater_test_data): Likewise.
+ (isnan_test_data): Likewise.
+ (isnormal_test_data): Likewise.
+ (issignaling_test_data): Likewise.
+ (isunordered_test_data): Likewise.
+ (ldexp_test_data): Likewise.
+ (lrint_test_data): Likewise.
+ (lrint_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_tonearest_test_data): Test for "inexact" exceptions.
+ (lrint_tonearest_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_tonearest_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_tonearest_test_data) [TEST_LDOUBLE]: Use "L" suffix on that
+ test input.
+ (lrint_towardzero_test_data): Test for "inexact" exceptions.
+ (lrint_towardzero_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_towardzero_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_towardzero_test_data) [TEST_LDOUBLE]: Use "L" suffix on
+ that test input.
+ (lrint_downward_test_data): Test for "inexact" exceptions.
+ (lrint_downward_test_data) [TEST_FLOAT]: Disable one test.
+ (lrint_downward_test_data) [!TEST_LDOUBLE]: Likewise.
+ (lrint_downward_test_data) [TEST_LDOUBLE]: Use "L" suffix on that
+ test input.
+ (lrint_upward_test_data): Test for "inexact" exceptions.
+ (lrint_upward_test_data) [TEST_LDOUBLE]: Use "L" suffix on one
+ test input.
+ (llrint_test_data): Test for "inexact" exceptions.
+ (llrint_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_tonearest_test_data): Test for "inexact" exceptions.
+ (llrint_tonearest_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_towardzero_test_data): Test for "inexact" exceptions.
+ (llrint_towardzero_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_downward_test_data): Test for "inexact" exceptions.
+ (llrint_downward_test_data) [TEST_FLOAT]: Disable one test.
+ (llrint_upward_test_data): Test for "inexact" exceptions.
+ (logb_test_data): Likewise.
+ (logb_downward_test_data): Likewise.
+ (nextafter_test_data): Likewise.
+ (nexttoward_test_data): Likewise.
+ (remainder_test_data): Likewise.
+ (remquo_test_data): Likewise.
+ (scalbn_test_data): Likewise.
+ (scalbln_test_data): Likewise.
+ (signbit_test_data): Likewise.
+ (sqrt_test_data): Likewise.
+ (significand_test_data): Likewise.
+
+2013-05-17 Siddhesh Poyarekar <siddhesh@xxxxxxxxxx>
+
+ [BZ #15424]
+ * benchtests/bench-modf.c (struct args): Mark arg0 as
+ volatile.
+ * scripts/bench.pl: Mark members of struct args as volatile.
+
+2013-05-17 Adhemerval Zanella <azanella@xxxxxxxxxxxxxxxxxx>
+
+ * sysdeps/powerpc/fpu/e_hypot.c (GET_TWO_FLOAT_WORD): Fix test for
+ negative infinity on POWER6 or lower.
+ * sysdeps/powerpc/fpu/e_hypotf.c (GET_TWO_FLOAT_WORD): Likewise.
+
2013-05-16 Maciej W. Rozycki <macro@xxxxxxxxxxxxxxxx>
[BZ #15442]
Modified: fsf/trunk/libc/NEWS
==============================================================================
--- fsf/trunk/libc/NEWS (original)
+++ fsf/trunk/libc/NEWS Sat May 18 00:02:11 2013
@@ -17,7 +17,7 @@
15086, 15160, 15214, 15221, 15232, 15234, 15283, 15285, 15287, 15304,
15305, 15307, 15309, 15327, 15330, 15335, 15336, 15337, 15342, 15346,
15359, 15361, 15366, 15380, 15394, 15395, 15405, 15406, 15409, 15416,
- 15418, 15419, 15423, 15426, 15429, 15442, 15448.
+ 15418, 15419, 15423, 15424, 15426, 15429, 15442, 15448, 15480, 15485.
* CVE-2013-0242 Buffer overrun in regexp matcher has been fixed (Bugzilla
#15078).
Modified: fsf/trunk/libc/benchtests/bench-modf.c
==============================================================================
--- fsf/trunk/libc/benchtests/bench-modf.c (original)
+++ fsf/trunk/libc/benchtests/bench-modf.c Sat May 18 00:02:11 2013
@@ -21,7 +21,7 @@
struct args
{
- double arg0;
+ volatile double arg0;
} in[] =
{
{ 42.42 },
Modified: fsf/trunk/libc/math/gen-libm-test.pl
==============================================================================
--- fsf/trunk/libc/math/gen-libm-test.pl (original)
+++ fsf/trunk/libc/math/gen-libm-test.pl Sat May 18 00:02:11 2013
@@ -345,7 +345,7 @@
$str = "";
$extra_expected = "0";
}
- $cline .= ", \"$str\", 123456789, $run_extra, $extra_expected";
+ $cline .= ", \"$str\", $run_extra, $extra_expected";
if ($run_extra) {
$cline .= &new_test ($str, undef, 0);
} else {
@@ -361,7 +361,7 @@
$str = "";
$extra_expected = "0";
}
- $cline .= ", \"$str\", 0, $run_extra, $extra_expected";
+ $cline .= ", \"$str\", $run_extra, $extra_expected";
if ($run_extra) {
$cline .= &new_test ($str, undef, 0);
} else {
@@ -377,7 +377,7 @@
$str = "";
$extra_expected = "0";
}
- $cline .= ", \"$str\", 123.456789, $run_extra, $extra_expected";
+ $cline .= ", \"$str\", $run_extra, $extra_expected";
if ($run_extra) {
$cline .= &new_test ($str, undef, 0);
} else {
@@ -393,7 +393,7 @@
$str = "";
$extra_expected = "0";
}
- $cline .= ", \"$str\", 123456789, $run_extra, $extra_expected";
+ $cline .= ", \"$str\", $run_extra, $extra_expected";
if ($run_extra) {
$cline .= &new_test ($str, undef, 0);
} else {
Modified: fsf/trunk/libc/math/libm-test.inc
==============================================================================
--- fsf/trunk/libc/math/libm-test.inc (original)
+++ fsf/trunk/libc/math/libm-test.inc Sat May 18 00:02:11 2013
@@ -734,18 +734,14 @@
check_int (const char *test_name, int computed, int expected, int max_ulp,
int exceptions)
{
- int diff = computed - expected;
int ok = 0;
int errno_value = errno;
test_exceptions (test_name, exceptions);
test_errno (test_name, errno_value, exceptions);
noTests++;
- if (abs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
if (print_screen (ok))
{
@@ -768,18 +764,14 @@
check_long (const char *test_name, long int computed, long int expected,
long int max_ulp, int exceptions)
{
- long int diff = computed - expected;
int ok = 0;
int errno_value = errno;
test_exceptions (test_name, exceptions);
test_errno (test_name, errno_value, exceptions);
noTests++;
- if (labs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
if (print_screen (ok))
{
@@ -834,18 +826,14 @@
long long int max_ulp,
int exceptions)
{
- long long int diff = computed - expected;
int ok = 0;
int errno_value = errno;
test_exceptions (test_name, exceptions);
test_errno (test_name, errno_value, exceptions);
noTests++;
- if (llabs (diff) <= max_ulp)
+ if (computed == expected)
ok = 1;
-
- if (!ok)
- print_ulps (test_name, diff);
if (print_screen (ok))
{
@@ -940,7 +928,6 @@
FLOAT max_ulp;
int exceptions;
const char *extra_name;
- int extra_init;
int extra_test;
int extra_expected;
int extra_ulp;
@@ -953,7 +940,6 @@
FLOAT max_ulp;
int exceptions;
const char *extra_name;
- FLOAT extra_init;
int extra_test;
FLOAT extra_expected;
FLOAT extra_ulp;
@@ -966,7 +952,6 @@
FLOAT max_ulp;
int exceptions;
const char *extra_name;
- int extra_init;
int extra_test;
int extra_expected;
int extra_ulp;
@@ -1113,19 +1098,19 @@
(ARRAY)[i].argc, (ARRAY)[i].expected, \
(ARRAY)[i].max_ulp, (ARRAY)[i].exceptions); \
ROUND_RESTORE_ ## ROUNDING_MODE
-#define RUN_TEST_f_f1(TEST_NAME, FUNC_NAME, ARG, EXPECTED, \
- MAX_ULP, EXCEPTIONS, \
- EXTRA_NAME, EXTRA_VAR, EXTRA_INIT, EXTRA_TEST, \
- EXTRA_EXPECTED, EXTRA_ULP) \
- do \
- { \
- (EXTRA_VAR) = (EXTRA_INIT); \
- check_float (TEST_NAME, FUNC (FUNC_NAME) (ARG), EXPECTED, \
- MAX_ULP, EXCEPTIONS); \
- if (EXTRA_TEST) \
- check_int (EXTRA_NAME, EXTRA_VAR, EXTRA_EXPECTED, \
- EXTRA_ULP, 0); \
- } \
+#define RUN_TEST_f_f1(TEST_NAME, FUNC_NAME, ARG, EXPECTED, \
+ MAX_ULP, EXCEPTIONS, \
+ EXTRA_NAME, EXTRA_VAR, EXTRA_TEST, \
+ EXTRA_EXPECTED, EXTRA_ULP) \
+ do \
+ { \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
+ check_float (TEST_NAME, FUNC (FUNC_NAME) (ARG), EXPECTED, \
+ MAX_ULP, EXCEPTIONS); \
+ if (EXTRA_TEST) \
+ check_int (EXTRA_NAME, EXTRA_VAR, EXTRA_EXPECTED, \
+ EXTRA_ULP, 0); \
+ } \
while (0)
#define RUN_TEST_LOOP_f_f1(FUNC_NAME, ARRAY, ROUNDING_MODE, EXTRA_VAR) \
IF_ROUND_INIT_ ## ROUNDING_MODE \
@@ -1133,17 +1118,16 @@
RUN_TEST_f_f1 ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \
(ARRAY)[i].expected, (ARRAY)[i].max_ulp, \
(ARRAY)[i].exceptions, (ARRAY)[i].extra_name, \
- EXTRA_VAR, (ARRAY)[i].extra_init, \
- (ARRAY)[i].extra_test, (ARRAY)[i].extra_expected, \
- (ARRAY)[i].extra_ulp); \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected, (ARRAY)[i].extra_ulp); \
ROUND_RESTORE_ ## ROUNDING_MODE
#define RUN_TEST_fF_f1(TEST_NAME, FUNC_NAME, ARG, EXPECTED, \
MAX_ULP, EXCEPTIONS, \
- EXTRA_NAME, EXTRA_VAR, EXTRA_INIT, EXTRA_TEST, \
+ EXTRA_NAME, EXTRA_VAR, EXTRA_TEST, \
EXTRA_EXPECTED, EXTRA_ULP) \
do \
{ \
- (EXTRA_VAR) = (EXTRA_INIT); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
check_float (TEST_NAME, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
EXPECTED, MAX_ULP, EXCEPTIONS); \
if (EXTRA_TEST) \
@@ -1157,17 +1141,16 @@
RUN_TEST_fF_f1 ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \
(ARRAY)[i].expected, (ARRAY)[i].max_ulp, \
(ARRAY)[i].exceptions, (ARRAY)[i].extra_name, \
- EXTRA_VAR, (ARRAY)[i].extra_init, \
- (ARRAY)[i].extra_test, (ARRAY)[i].extra_expected, \
- (ARRAY)[i].extra_ulp); \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected, (ARRAY)[i].extra_ulp); \
ROUND_RESTORE_ ## ROUNDING_MODE
#define RUN_TEST_fI_f1(TEST_NAME, FUNC_NAME, ARG, EXPECTED, \
MAX_ULP, EXCEPTIONS, \
- EXTRA_NAME, EXTRA_VAR, EXTRA_INIT, EXTRA_TEST, \
+ EXTRA_NAME, EXTRA_VAR, EXTRA_TEST, \
EXTRA_EXPECTED, EXTRA_ULP) \
do \
{ \
- (EXTRA_VAR) = (EXTRA_INIT); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
check_float (TEST_NAME, FUNC (FUNC_NAME) (ARG, &(EXTRA_VAR)), \
EXPECTED, MAX_ULP, EXCEPTIONS); \
if (EXTRA_TEST) \
@@ -1181,17 +1164,16 @@
RUN_TEST_fI_f1 ((ARRAY)[i].test_name, FUNC_NAME, (ARRAY)[i].arg, \
(ARRAY)[i].expected, (ARRAY)[i].max_ulp, \
(ARRAY)[i].exceptions, (ARRAY)[i].extra_name, \
- EXTRA_VAR, (ARRAY)[i].extra_init, \
- (ARRAY)[i].extra_test, (ARRAY)[i].extra_expected, \
- (ARRAY)[i].extra_ulp); \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
+ (ARRAY)[i].extra_expected, (ARRAY)[i].extra_ulp); \
ROUND_RESTORE_ ## ROUNDING_MODE
#define RUN_TEST_ffI_f1(TEST_NAME, FUNC_NAME, ARG1, ARG2, EXPECTED, \
MAX_ULP, EXCEPTIONS, \
- EXTRA_NAME, EXTRA_VAR, EXTRA_INIT, EXTRA_TEST, \
+ EXTRA_NAME, EXTRA_VAR, EXTRA_TEST, \
EXTRA_EXPECTED, EXTRA_ULP) \
do \
{ \
- (EXTRA_VAR) = (EXTRA_INIT); \
+ (EXTRA_VAR) = (EXTRA_EXPECTED) == 0 ? 1 : 0; \
check_float (TEST_NAME, \
FUNC (FUNC_NAME) (ARG1, ARG2, &(EXTRA_VAR)), \
EXPECTED, MAX_ULP, EXCEPTIONS); \
@@ -1208,8 +1190,7 @@
(ARRAY)[i].arg1, (ARRAY)[i].arg2, \
(ARRAY)[i].expected, (ARRAY)[i].max_ulp, \
(ARRAY)[i].exceptions, (ARRAY)[i].extra_name, \
- EXTRA_VAR, (ARRAY)[i].extra_init, \
- (ARRAY)[i].extra_test, \
+ EXTRA_VAR, (ARRAY)[i].extra_test, \
(ARRAY)[i].extra_expected, \
(ARRAY)[i].extra_ulp); \
ROUND_RESTORE_ ## ROUNDING_MODE
@@ -5953,12 +5934,13 @@
static const struct test_f_f_data ceil_test_data[] =
{
START_DATA (ceil),
- TEST_f_f (ceil, 0.0, 0.0),
- TEST_f_f (ceil, minus_zero, minus_zero),
- TEST_f_f (ceil, plus_infty, plus_infty),
- TEST_f_f (ceil, minus_infty, minus_infty),
- TEST_f_f (ceil, qnan_value, qnan_value),
-
+ TEST_f_f (ceil, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (ceil, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ /* Bug 15479: spurious "inexact" exception may occur. */
TEST_f_f (ceil, M_PIl, 4.0),
TEST_f_f (ceil, -M_PIl, -3.0),
TEST_f_f (ceil, 0.1, 1.0),
@@ -6162,13 +6144,13 @@
static const struct test_c_f_data cimag_test_data[] =
{
START_DATA (cimag);
- TEST_c_f (cimag, 1.0, 0.0, 0.0),
- TEST_c_f (cimag, 1.0, minus_zero, minus_zero),
- TEST_c_f (cimag, 1.0, qnan_value, qnan_value),
- TEST_c_f (cimag, qnan_value, qnan_value, qnan_value),
- TEST_c_f (cimag, 1.0, plus_infty, plus_infty),
- TEST_c_f (cimag, 1.0, minus_infty, minus_infty),
- TEST_c_f (cimag, 2.0, 3.0, 3.0),
+ TEST_c_f (cimag, 1.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 1.0, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (cimag, 2.0, 3.0, 3.0, NO_INEXACT_EXCEPTION),
END_DATA (cimag);
};
@@ -6622,13 +6604,13 @@
static const struct test_c_c_data conj_test_data[] =
{
START_DATA (conj),
- TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero),
- TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0),
- TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value),
- TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty),
- TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty),
- TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0),
- TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0),
+ TEST_c_c (conj, 0.0, 0.0, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 0.0, minus_zero, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, minus_infty, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, plus_infty, plus_infty, plus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 1.0, 2.0, 1.0, -2.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (conj, 3.0, -4.0, 3.0, 4.0, NO_INEXACT_EXCEPTION),
END_DATA (conj)
};
@@ -6644,26 +6626,26 @@
static const struct test_ff_f_data copysign_test_data[] =
{
START_DATA (copysign),
- TEST_ff_f (copysign, 0, 4, 0),
- TEST_ff_f (copysign, 0, -4, minus_zero),
- TEST_ff_f (copysign, minus_zero, 4, 0),
- TEST_ff_f (copysign, minus_zero, -4, minus_zero),
-
- TEST_ff_f (copysign, plus_infty, 0, plus_infty),
- TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty),
- TEST_ff_f (copysign, minus_infty, 0, plus_infty),
- TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty),
-
- TEST_ff_f (copysign, 0, plus_infty, 0),
- TEST_ff_f (copysign, 0, minus_zero, minus_zero),
- TEST_ff_f (copysign, minus_zero, plus_infty, 0),
- TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero),
+ TEST_ff_f (copysign, 0, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, -4, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, 4, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, -4, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (copysign, plus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, plus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, 0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_infty, minus_zero, minus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (copysign, 0, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, 0, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
/* XXX More correctly we would have to check the sign of the NaN. */
- TEST_ff_f (copysign, qnan_value, 0, qnan_value),
- TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value),
- TEST_ff_f (copysign, -qnan_value, 0, qnan_value),
- TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value),
+ TEST_ff_f (copysign, qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, 0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (copysign, -qnan_value, minus_zero, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (copysign)
};
@@ -6983,20 +6965,20 @@
static const struct test_c_c_data cproj_test_data[] =
{
START_DATA (cproj),
- TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0),
- TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero),
- TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero),
- TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0),
-
- TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value),
-
- TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0),
- TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero),
- TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0),
- TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero),
-
- TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0),
- TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0),
+ TEST_c_c (cproj, 0.0, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 0.0, minus_zero, 0.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_zero, 0.0, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, qnan_value, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, plus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, plus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, plus_infty, plus_infty, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, minus_infty, minus_infty, plus_infty, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_c_c (cproj, 1.0, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_c (cproj, 2.0, 3.0, 2.0, 3.0, NO_INEXACT_EXCEPTION),
END_DATA (cproj)
};
@@ -7012,13 +6994,13 @@
static const struct test_c_f_data creal_test_data[] =
{
START_DATA (creal);
- TEST_c_f (creal, 0.0, 1.0, 0.0),
- TEST_c_f (creal, minus_zero, 1.0, minus_zero),
- TEST_c_f (creal, qnan_value, 1.0, qnan_value),
- TEST_c_f (creal, qnan_value, qnan_value, qnan_value),
- TEST_c_f (creal, plus_infty, 1.0, plus_infty),
- TEST_c_f (creal, minus_infty, 1.0, minus_infty),
- TEST_c_f (creal, 2.0, 3.0, 2.0),
+ TEST_c_f (creal, 0.0, 1.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_zero, 1.0, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, 1.0, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, plus_infty, 1.0, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, minus_infty, 1.0, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_c_f (creal, 2.0, 3.0, 2.0, NO_INEXACT_EXCEPTION),
END_DATA (creal);
};
@@ -8047,15 +8029,15 @@
static const struct test_f_f_data fabs_test_data[] =
{
START_DATA (fabs),
- TEST_f_f (fabs, 0, 0),
- TEST_f_f (fabs, minus_zero, 0),
-
- TEST_f_f (fabs, plus_infty, plus_infty),
- TEST_f_f (fabs, minus_infty, plus_infty),
- TEST_f_f (fabs, qnan_value, qnan_value),
-
- TEST_f_f (fabs, 38.0, 38.0),
- TEST_f_f (fabs, -M_El, M_El),
+ TEST_f_f (fabs, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_zero, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_f_f (fabs, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_f_f (fabs, 38.0, 38.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (fabs, -M_El, M_El, NO_INEXACT_EXCEPTION),
END_DATA (fabs)
};
@@ -8071,33 +8053,33 @@
static const struct test_ff_f_data fdim_test_data[] =
{
START_DATA (fdim),
- TEST_ff_f (fdim, 0, 0, 0),
- TEST_ff_f (fdim, 9, 0, 9),
- TEST_ff_f (fdim, 0, 9, 0),
- TEST_ff_f (fdim, -9, 0, 0),
- TEST_ff_f (fdim, 0, -9, 9),
-
- TEST_ff_f (fdim, plus_infty, 9, plus_infty),
- TEST_ff_f (fdim, plus_infty, -9, plus_infty),
- TEST_ff_f (fdim, minus_infty, 9, 0),
- TEST_ff_f (fdim, minus_infty, -9, 0),
- TEST_ff_f (fdim, 9, minus_infty, plus_infty),
- TEST_ff_f (fdim, -9, minus_infty, plus_infty),
- TEST_ff_f (fdim, 9, plus_infty, 0),
- TEST_ff_f (fdim, -9, plus_infty, 0),
-
- TEST_ff_f (fdim, 0, qnan_value, qnan_value),
- TEST_ff_f (fdim, 9, qnan_value, qnan_value),
- TEST_ff_f (fdim, -9, qnan_value, qnan_value),
- TEST_ff_f (fdim, qnan_value, 9, qnan_value),
- TEST_ff_f (fdim, qnan_value, -9, qnan_value),
- TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value),
- TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value),
- TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value),
- TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value),
- TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value),
-
- TEST_ff_f (fdim, plus_infty, plus_infty, 0),
+ TEST_ff_f (fdim, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 0, -9, 9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, -9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, minus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, plus_infty, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, 0, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, 9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, -9, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, 9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, -9, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, plus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, minus_infty, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, plus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, minus_infty, qnan_value, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fdim, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fdim, plus_infty, plus_infty, 0, NO_INEXACT_EXCEPTION),
END_DATA (fdim)
};
@@ -8113,13 +8095,13 @@
static const struct test_f_i_data finite_test_data[] =
{
START_DATA (finite),
- TEST_f_b (finite, 0, 1),
- TEST_f_b (finite, minus_zero, 1),
- TEST_f_b (finite, 10, 1),
- TEST_f_b (finite, min_subnorm_value, 1),
- TEST_f_b (finite, plus_infty, 0),
- TEST_f_b (finite, minus_infty, 0),
- TEST_f_b (finite, qnan_value, 0),
+ TEST_f_b (finite, 0, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, min_subnorm_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (finite, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (finite)
};
@@ -8135,12 +8117,13 @@
static const struct test_f_f_data floor_test_data[] =
{
START_DATA (floor),
- TEST_f_f (floor, 0.0, 0.0),
- TEST_f_f (floor, minus_zero, minus_zero),
- TEST_f_f (floor, plus_infty, plus_infty),
- TEST_f_f (floor, minus_infty, minus_infty),
- TEST_f_f (floor, qnan_value, qnan_value),
-
+ TEST_f_f (floor, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_f_f (floor, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ /* Bug 15479: spurious "inexact" exception may occur. */
TEST_f_f (floor, M_PIl, 3.0),
TEST_f_f (floor, -M_PIl, -4.0),
@@ -9186,34 +9169,34 @@
static const struct test_ff_f_data fmax_test_data[] =
{
START_DATA (fmax),
- TEST_ff_f (fmax, 0, 0, 0),
- TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero),
- TEST_ff_f (fmax, 9, 0, 9),
- TEST_ff_f (fmax, 0, 9, 9),
- TEST_ff_f (fmax, -9, 0, 0),
- TEST_ff_f (fmax, 0, -9, 0),
-
- TEST_ff_f (fmax, plus_infty, 9, plus_infty),
- TEST_ff_f (fmax, 0, plus_infty, plus_infty),
- TEST_ff_f (fmax, -9, plus_infty, plus_infty),
- TEST_ff_f (fmax, plus_infty, -9, plus_infty),
-
- TEST_ff_f (fmax, minus_infty, 9, 9),
- TEST_ff_f (fmax, minus_infty, -9, -9),
- TEST_ff_f (fmax, 9, minus_infty, 9),
- TEST_ff_f (fmax, -9, minus_infty, -9),
-
- TEST_ff_f (fmax, 0, qnan_value, 0),
- TEST_ff_f (fmax, 9, qnan_value, 9),
- TEST_ff_f (fmax, -9, qnan_value, -9),
- TEST_ff_f (fmax, qnan_value, 0, 0),
- TEST_ff_f (fmax, qnan_value, 9, 9),
- TEST_ff_f (fmax, qnan_value, -9, -9),
- TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty),
- TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty),
- TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty),
- TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty),
- TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (fmax, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, 0, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, -9, 0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, plus_infty, 9, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 0, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, -9, plus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, minus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, minus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, minus_infty, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmax, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmax, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (fmax)
};
@@ -9229,33 +9212,33 @@
static const struct test_ff_f_data fmin_test_data[] =
{
START_DATA (fmin),
- TEST_ff_f (fmin, 0, 0, 0),
- TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero),
- TEST_ff_f (fmin, 9, 0, 0),
- TEST_ff_f (fmin, 0, 9, 0),
- TEST_ff_f (fmin, -9, 0, -9),
- TEST_ff_f (fmin, 0, -9, -9),
-
- TEST_ff_f (fmin, plus_infty, 9, 9),
- TEST_ff_f (fmin, 9, plus_infty, 9),
- TEST_ff_f (fmin, plus_infty, -9, -9),
- TEST_ff_f (fmin, -9, plus_infty, -9),
- TEST_ff_f (fmin, minus_infty, 9, minus_infty),
- TEST_ff_f (fmin, minus_infty, -9, minus_infty),
- TEST_ff_f (fmin, 9, minus_infty, minus_infty),
- TEST_ff_f (fmin, -9, minus_infty, minus_infty),
-
- TEST_ff_f (fmin, 0, qnan_value, 0),
- TEST_ff_f (fmin, 9, qnan_value, 9),
- TEST_ff_f (fmin, -9, qnan_value, -9),
- TEST_ff_f (fmin, qnan_value, 0, 0),
- TEST_ff_f (fmin, qnan_value, 9, 9),
- TEST_ff_f (fmin, qnan_value, -9, -9),
- TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty),
- TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty),
- TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty),
- TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty),
- TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value),
+ TEST_ff_f (fmin, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_zero, minus_zero, minus_zero, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, 9, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, 0, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 0, -9, -9, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, plus_infty, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, plus_infty, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, plus_infty, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, 9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, -9, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmin, 0, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, 9, qnan_value, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, -9, qnan_value, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, 9, 9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, -9, -9, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, plus_infty, qnan_value, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, minus_infty, qnan_value, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, plus_infty, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, minus_infty, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmin, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
END_DATA (fmin)
};
@@ -9272,38 +9255,38 @@
{
START_DATA (fmod),
/* fmod (+0, y) == +0 for y != 0. */
- TEST_ff_f (fmod, 0, 3, 0),
+ TEST_ff_f (fmod, 0, 3, 0, NO_INEXACT_EXCEPTION),
/* fmod (-0, y) == -0 for y != 0. */
- TEST_ff_f (fmod, minus_zero, 3, minus_zero),
+ TEST_ff_f (fmod, minus_zero, 3, minus_zero, NO_INEXACT_EXCEPTION),
/* fmod (+inf, y) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, plus_infty, 3, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, plus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (-inf, y) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, minus_infty, 3, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, minus_infty, 3, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, +0) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, 3, 0, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, 3, 0, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, -0) == qNaN plus invalid exception. */
- TEST_ff_f (fmod, 3, minus_zero, qnan_value, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_ff_f (fmod, 3, minus_zero, qnan_value, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* fmod (x, +inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, plus_infty, 3.0),
+ TEST_ff_f (fmod, 3.0, plus_infty, 3.0, NO_INEXACT_EXCEPTION),
/* fmod (x, -inf) == x for x not infinite. */
- TEST_ff_f (fmod, 3.0, minus_infty, 3.0),
-
- TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value),
-
- TEST_ff_f (fmod, 6.5, 2.25L, 2.0L),
- TEST_ff_f (fmod, -6.5, 2.25L, -2.0L),
- TEST_ff_f (fmod, 6.5, -2.25L, 2.0L),
- TEST_ff_f (fmod, -6.5, -2.25L, -2.0L),
-
- TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero),
+ TEST_ff_f (fmod, 3.0, minus_infty, 3.0, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmod, qnan_value, qnan_value, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmod, 6.5, 2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, 2.25L, -2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, 6.5, -2.25L, 2.0L, NO_INEXACT_EXCEPTION),
+ TEST_ff_f (fmod, -6.5, -2.25L, -2.0L, NO_INEXACT_EXCEPTION),
+
+ TEST_ff_f (fmod, 0x0.fffffep-126L, 0x1p-149L, plus_zero, NO_INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero),
+ TEST_ff_f (fmod, 0x0.fffffffffffffp-1022L, 0x1p-1074L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
#if defined TEST_LDOUBLE && LDBL_MIN_EXP <= -16381
- TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero),
+ TEST_ff_f (fmod, 0x0.fffffffffffffffep-16382L, 0x1p-16445L, plus_zero, NO_INEXACT_EXCEPTION),
#endif
END_DATA (fmod)
};
@@ -9320,13 +9303,13 @@
static const struct test_f_i_data fpclassify_test_data[] =
{
START_DATA (fpclassify),
- TEST_f_i (fpclassify, qnan_value, FP_NAN),
- TEST_f_i (fpclassify, plus_infty, FP_INFINITE),
- TEST_f_i (fpclassify, minus_infty, FP_INFINITE),
- TEST_f_i (fpclassify, plus_zero, FP_ZERO),
- TEST_f_i (fpclassify, minus_zero, FP_ZERO),
- TEST_f_i (fpclassify, 1000, FP_NORMAL),
- TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL),
+ TEST_f_i (fpclassify, qnan_value, FP_NAN, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_infty, FP_INFINITE, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, plus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, minus_zero, FP_ZERO, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, 1000, FP_NORMAL, NO_INEXACT_EXCEPTION),
+ TEST_f_i (fpclassify, min_subnorm_value, FP_SUBNORMAL, NO_INEXACT_EXCEPTION),
END_DATA (fpclassify)
};
@@ -9342,15 +9325,15 @@
static const struct test_f_f1_data frexp_test_data[] =
{
START_DATA (frexp),
- TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE),
- TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE),
- TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE),
-
- TEST_fI_f1 (frexp, 0.0, 0.0, 0.0),
- TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0),
-
- TEST_fI_f1 (frexp, 12.8L, 0.8L, 4),
- TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5),
+ TEST_fI_f1 (frexp, plus_infty, plus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_infty, minus_infty, IGNORE, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, qnan_value, qnan_value, IGNORE, NO_INEXACT_EXCEPTION),
+
+ TEST_fI_f1 (frexp, 0.0, 0.0, 0.0, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, minus_zero, minus_zero, 0.0, NO_INEXACT_EXCEPTION),
+
+ TEST_fI_f1 (frexp, 12.8L, 0.8L, 4, NO_INEXACT_EXCEPTION),
+ TEST_fI_f1 (frexp, -27.34L, -0.854375L, 5, NO_INEXACT_EXCEPTION),
END_DATA (frexp)
};
@@ -9456,19 +9439,19 @@
static const struct test_f_i_data ilogb_test_data[] =
{
START_DATA (ilogb),
- TEST_f_i (ilogb, 1, 0),
- TEST_f_i (ilogb, M_El, 1),
- TEST_f_i (ilogb, 1024, 10),
- TEST_f_i (ilogb, -2000, 10),
+ TEST_f_i (ilogb, 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, M_El, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, 1024, 10, NO_INEXACT_EXCEPTION),
+ TEST_f_i (ilogb, -2000, 10, NO_INEXACT_EXCEPTION),
/* ilogb (0.0) == FP_ILOGB0 plus invalid exception */
- TEST_f_i (ilogb, 0.0, FP_ILOGB0, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, 0.0, FP_ILOGB0, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (qNaN) == FP_ILOGBNAN plus invalid exception */
- TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, qnan_value, FP_ILOGBNAN, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (inf) == INT_MAX plus invalid exception */
- TEST_f_i (ilogb, plus_infty, INT_MAX, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, plus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
/* ilogb (-inf) == INT_MAX plus invalid exception */
- TEST_f_i (ilogb, minus_infty, INT_MAX, INVALID_EXCEPTION|ERRNO_EDOM),
+ TEST_f_i (ilogb, minus_infty, INT_MAX, NO_INEXACT_EXCEPTION|INVALID_EXCEPTION|ERRNO_EDOM),
END_DATA (ilogb)
};
@@ -9483,13 +9466,13 @@
static const struct test_f_i_data isfinite_test_data[] =
{
START_DATA (isfinite),
- TEST_f_b (isfinite, 0, 1),
- TEST_f_b (isfinite, minus_zero, 1),
- TEST_f_b (isfinite, 10, 1),
- TEST_f_b (isfinite, min_subnorm_value, 1),
- TEST_f_b (isfinite, plus_infty, 0),
- TEST_f_b (isfinite, minus_infty, 0),
- TEST_f_b (isfinite, qnan_value, 0),
+ TEST_f_b (isfinite, 0, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, min_subnorm_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isfinite, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isfinite)
};
@@ -9504,22 +9487,22 @@
static const struct test_ff_i_data isgreater_test_data[] =
{
START_DATA (isgreater),
- TEST_ff_i (isgreater, minus_zero, minus_zero, 0),
- TEST_ff_i (isgreater, minus_zero, plus_zero, 0),
- TEST_ff_i (isgreater, minus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isgreater, minus_zero, qnan_value, 0),
- TEST_ff_i (isgreater, plus_zero, minus_zero, 0),
- TEST_ff_i (isgreater, plus_zero, plus_zero, 0),
- TEST_ff_i (isgreater, plus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isgreater, plus_zero, qnan_value, 0),
- TEST_ff_i (isgreater, (FLOAT) 1, minus_zero, 1),
- TEST_ff_i (isgreater, (FLOAT) 1, plus_zero, 1),
- TEST_ff_i (isgreater, (FLOAT) 1, (FLOAT) 1, 0),
- TEST_ff_i (isgreater, (FLOAT) 1, qnan_value, 0),
- TEST_ff_i (isgreater, qnan_value, minus_zero, 0),
- TEST_ff_i (isgreater, qnan_value, plus_zero, 0),
- TEST_ff_i (isgreater, qnan_value, (FLOAT) 1, 0),
- TEST_ff_i (isgreater, qnan_value, qnan_value, 0),
+ TEST_ff_i (isgreater, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreater, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isgreater)
};
@@ -9534,22 +9517,22 @@
static const struct test_ff_i_data isgreaterequal_test_data[] =
{
START_DATA (isgreaterequal),
- TEST_ff_i (isgreaterequal, minus_zero, minus_zero, 1),
- TEST_ff_i (isgreaterequal, minus_zero, plus_zero, 1),
- TEST_ff_i (isgreaterequal, minus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isgreaterequal, minus_zero, qnan_value, 0),
- TEST_ff_i (isgreaterequal, plus_zero, minus_zero, 1),
- TEST_ff_i (isgreaterequal, plus_zero, plus_zero, 1),
- TEST_ff_i (isgreaterequal, plus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isgreaterequal, plus_zero, qnan_value, 0),
- TEST_ff_i (isgreaterequal, (FLOAT) 1, minus_zero, 1),
- TEST_ff_i (isgreaterequal, (FLOAT) 1, plus_zero, 1),
- TEST_ff_i (isgreaterequal, (FLOAT) 1, (FLOAT) 1, 1),
- TEST_ff_i (isgreaterequal, (FLOAT) 1, qnan_value, 0),
- TEST_ff_i (isgreaterequal, qnan_value, minus_zero, 0),
- TEST_ff_i (isgreaterequal, qnan_value, plus_zero, 0),
- TEST_ff_i (isgreaterequal, qnan_value, (FLOAT) 1, 0),
- TEST_ff_i (isgreaterequal, qnan_value, qnan_value, 0),
+ TEST_ff_i (isgreaterequal, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isgreaterequal, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isgreaterequal)
};
@@ -9564,13 +9547,13 @@
static const struct test_f_i_data isinf_test_data[] =
{
START_DATA (isinf),
- TEST_f_b (isinf, 0, 0),
- TEST_f_b (isinf, minus_zero, 0),
- TEST_f_b (isinf, 10, 0),
- TEST_f_b (isinf, min_subnorm_value, 0),
- TEST_f_b (isinf, plus_infty, 1),
- TEST_f_b (isinf, minus_infty, 1),
- TEST_f_b (isinf, qnan_value, 0),
+ TEST_f_b (isinf, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, plus_infty, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, minus_infty, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isinf, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isinf)
};
@@ -9585,22 +9568,22 @@
static const struct test_ff_i_data isless_test_data[] =
{
START_DATA (isless),
- TEST_ff_i (isless, minus_zero, minus_zero, 0),
- TEST_ff_i (isless, minus_zero, plus_zero, 0),
- TEST_ff_i (isless, minus_zero, (FLOAT) 1, 1),
- TEST_ff_i (isless, minus_zero, qnan_value, 0),
- TEST_ff_i (isless, plus_zero, minus_zero, 0),
- TEST_ff_i (isless, plus_zero, plus_zero, 0),
- TEST_ff_i (isless, plus_zero, (FLOAT) 1, 1),
- TEST_ff_i (isless, plus_zero, qnan_value, 0),
- TEST_ff_i (isless, (FLOAT) 1, minus_zero, 0),
- TEST_ff_i (isless, (FLOAT) 1, plus_zero, 0),
- TEST_ff_i (isless, (FLOAT) 1, (FLOAT) 1, 0),
- TEST_ff_i (isless, (FLOAT) 1, qnan_value, 0),
- TEST_ff_i (isless, qnan_value, minus_zero, 0),
- TEST_ff_i (isless, qnan_value, plus_zero, 0),
- TEST_ff_i (isless, qnan_value, (FLOAT) 1, 0),
- TEST_ff_i (isless, qnan_value, qnan_value, 0),
+ TEST_ff_i (isless, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isless, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isless)
};
@@ -9615,22 +9598,22 @@
static const struct test_ff_i_data islessequal_test_data[] =
{
START_DATA (islessequal),
- TEST_ff_i (islessequal, minus_zero, minus_zero, 1),
- TEST_ff_i (islessequal, minus_zero, plus_zero, 1),
- TEST_ff_i (islessequal, minus_zero, (FLOAT) 1, 1),
- TEST_ff_i (islessequal, minus_zero, qnan_value, 0),
- TEST_ff_i (islessequal, plus_zero, minus_zero, 1),
- TEST_ff_i (islessequal, plus_zero, plus_zero, 1),
- TEST_ff_i (islessequal, plus_zero, (FLOAT) 1, 1),
- TEST_ff_i (islessequal, plus_zero, qnan_value, 0),
- TEST_ff_i (islessequal, (FLOAT) 1, minus_zero, 0),
- TEST_ff_i (islessequal, (FLOAT) 1, plus_zero, 0),
- TEST_ff_i (islessequal, (FLOAT) 1, (FLOAT) 1, 1),
- TEST_ff_i (islessequal, (FLOAT) 1, qnan_value, 0),
- TEST_ff_i (islessequal, qnan_value, minus_zero, 0),
- TEST_ff_i (islessequal, qnan_value, plus_zero, 0),
- TEST_ff_i (islessequal, qnan_value, (FLOAT) 1, 0),
- TEST_ff_i (islessequal, qnan_value, qnan_value, 0),
+ TEST_ff_i (islessequal, minus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessequal, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (islessequal)
};
@@ -9645,22 +9628,22 @@
static const struct test_ff_i_data islessgreater_test_data[] =
{
START_DATA (islessgreater),
- TEST_ff_i (islessgreater, minus_zero, minus_zero, 0),
- TEST_ff_i (islessgreater, minus_zero, plus_zero, 0),
- TEST_ff_i (islessgreater, minus_zero, (FLOAT) 1, 1),
- TEST_ff_i (islessgreater, minus_zero, qnan_value, 0),
- TEST_ff_i (islessgreater, plus_zero, minus_zero, 0),
- TEST_ff_i (islessgreater, plus_zero, plus_zero, 0),
- TEST_ff_i (islessgreater, plus_zero, (FLOAT) 1, 1),
- TEST_ff_i (islessgreater, plus_zero, qnan_value, 0),
- TEST_ff_i (islessgreater, (FLOAT) 1, minus_zero, 1),
- TEST_ff_i (islessgreater, (FLOAT) 1, plus_zero, 1),
- TEST_ff_i (islessgreater, (FLOAT) 1, (FLOAT) 1, 0),
- TEST_ff_i (islessgreater, (FLOAT) 1, qnan_value, 0),
- TEST_ff_i (islessgreater, qnan_value, minus_zero, 0),
- TEST_ff_i (islessgreater, qnan_value, plus_zero, 0),
- TEST_ff_i (islessgreater, qnan_value, (FLOAT) 1, 0),
- TEST_ff_i (islessgreater, qnan_value, qnan_value, 0),
+ TEST_ff_i (islessgreater, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, minus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, plus_zero, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, (FLOAT) 1, qnan_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (islessgreater, qnan_value, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (islessgreater)
};
@@ -9675,13 +9658,13 @@
static const struct test_f_i_data isnan_test_data[] =
{
START_DATA (isnan),
- TEST_f_b (isnan, 0, 0),
- TEST_f_b (isnan, minus_zero, 0),
- TEST_f_b (isnan, 10, 0),
- TEST_f_b (isnan, min_subnorm_value, 0),
- TEST_f_b (isnan, plus_infty, 0),
- TEST_f_b (isnan, minus_infty, 0),
- TEST_f_b (isnan, qnan_value, 1),
+ TEST_f_b (isnan, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnan, qnan_value, 1, NO_INEXACT_EXCEPTION),
END_DATA (isnan)
};
@@ -9696,13 +9679,13 @@
static const struct test_f_i_data isnormal_test_data[] =
{
START_DATA (isnormal),
- TEST_f_b (isnormal, 0, 0),
- TEST_f_b (isnormal, minus_zero, 0),
- TEST_f_b (isnormal, 10, 1),
- TEST_f_b (isnormal, min_subnorm_value, 0),
- TEST_f_b (isnormal, plus_infty, 0),
- TEST_f_b (isnormal, minus_infty, 0),
- TEST_f_b (isnormal, qnan_value, 0),
+ TEST_f_b (isnormal, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, 10, 1, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (isnormal, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (isnormal)
};
@@ -9717,13 +9700,13 @@
static const struct test_f_i_data issignaling_test_data[] =
{
START_DATA (issignaling),
- TEST_f_b (issignaling, 0, 0),
- TEST_f_b (issignaling, minus_zero, 0),
- TEST_f_b (issignaling, 10, 0),
- TEST_f_b (issignaling, min_subnorm_value, 0),
- TEST_f_b (issignaling, plus_infty, 0),
- TEST_f_b (issignaling, minus_infty, 0),
- TEST_f_b (issignaling, qnan_value, 0),
+ TEST_f_b (issignaling, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, 10, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, min_subnorm_value, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, plus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, minus_infty, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_b (issignaling, qnan_value, 0, NO_INEXACT_EXCEPTION),
END_DATA (issignaling)
};
@@ -9738,22 +9721,22 @@
static const struct test_ff_i_data isunordered_test_data[] =
{
START_DATA (isunordered),
- TEST_ff_i (isunordered, minus_zero, minus_zero, 0),
- TEST_ff_i (isunordered, minus_zero, plus_zero, 0),
- TEST_ff_i (isunordered, minus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isunordered, minus_zero, qnan_value, 1),
- TEST_ff_i (isunordered, plus_zero, minus_zero, 0),
- TEST_ff_i (isunordered, plus_zero, plus_zero, 0),
- TEST_ff_i (isunordered, plus_zero, (FLOAT) 1, 0),
- TEST_ff_i (isunordered, plus_zero, qnan_value, 1),
- TEST_ff_i (isunordered, (FLOAT) 1, minus_zero, 0),
- TEST_ff_i (isunordered, (FLOAT) 1, plus_zero, 0),
- TEST_ff_i (isunordered, (FLOAT) 1, (FLOAT) 1, 0),
- TEST_ff_i (isunordered, (FLOAT) 1, qnan_value, 1),
- TEST_ff_i (isunordered, qnan_value, minus_zero, 1),
- TEST_ff_i (isunordered, qnan_value, plus_zero, 1),
- TEST_ff_i (isunordered, qnan_value, (FLOAT) 1, 1),
- TEST_ff_i (isunordered, qnan_value, qnan_value, 1),
+ TEST_ff_i (isunordered, minus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, minus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, plus_zero, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, plus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, (FLOAT) 1, 0, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, (FLOAT) 1, qnan_value, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, minus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, plus_zero, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, (FLOAT) 1, 1, NO_INEXACT_EXCEPTION),
+ TEST_ff_i (isunordered, qnan_value, qnan_value, 1, NO_INEXACT_EXCEPTION),
END_DATA (isunordered)
};
@@ -9928,18 +9911,18 @@
static const struct test_fi_f_data ldexp_test_data[] =
{
START_DATA (ldexp),
- TEST_fi_f (ldexp, 0, 0, 0),
- TEST_fi_f (ldexp, minus_zero, 0, minus_zero),
-
- TEST_fi_f (ldexp, plus_infty, 1, plus_infty),
- TEST_fi_f (ldexp, minus_infty, 1, minus_infty),
- TEST_fi_f (ldexp, qnan_value, 1, qnan_value),
-
- TEST_fi_f (ldexp, 0.8L, 4, 12.8L),
- TEST_fi_f (ldexp, -0.854375L, 5, -27.34L),
+ TEST_fi_f (ldexp, 0, 0, 0, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, minus_zero, 0, minus_zero, NO_INEXACT_EXCEPTION),
+
+ TEST_fi_f (ldexp, plus_infty, 1, plus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, minus_infty, 1, minus_infty, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, qnan_value, 1, qnan_value, NO_INEXACT_EXCEPTION),
+
+ TEST_fi_f (ldexp, 0.8L, 4, 12.8L, NO_INEXACT_EXCEPTION),
+ TEST_fi_f (ldexp, -0.854375L, 5, -27.34L, NO_INEXACT_EXCEPTION),
/* ldexp (x, 0) == x. */
- TEST_fi_f (ldexp, 1.0L, 0L, 1.0L),
+ TEST_fi_f (ldexp, 1.0L, 0L, 1.0L, NO_INEXACT_EXCEPTION),
END_DATA (ldexp)
};
@@ -9993,22 +9976,22 @@
the rounding method and test the critical cases. So far, only
unproblematic numbers are tested. */
/* TODO: missing +/-Inf as well as qNaN tests. */
- TEST_f_l (lrint, 0.0, 0),
- TEST_f_l (lrint, minus_zero, 0),
- TEST_f_l (lrint, 0.2L, 0),
- TEST_f_l (lrint, -0.2L, 0),
-
- TEST_f_l (lrint, 1.4L, 1),
- TEST_f_l (lrint, -1.4L, -1),
-
- TEST_f_l (lrint, 8388600.3L, 8388600),
- TEST_f_l (lrint, -8388600.3L, -8388600),
-
- TEST_f_l (lrint, 1071930.0008, 1071930),
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824),
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656),
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
END_DATA (lrint)
@@ -10026,26 +10009,26 @@
static const struct test_f_l_data lrint_tonearest_test_data[] =
{
START_DATA (lrint_tonearest),
- TEST_f_l (lrint, 0.0, 0),
- TEST_f_l (lrint, minus_zero, 0),
- TEST_f_l (lrint, 0.2L, 0),
- TEST_f_l (lrint, -0.2L, 0),
- TEST_f_l (lrint, 0.5L, 0),
- TEST_f_l (lrint, -0.5L, 0),
- TEST_f_l (lrint, 0.8L, 1),
- TEST_f_l (lrint, -0.8L, -1),
-
- TEST_f_l (lrint, 1.4L, 1),
- TEST_f_l (lrint, -1.4L, -1),
-
- TEST_f_l (lrint, 8388600.3L, 8388600),
- TEST_f_l (lrint, -8388600.3L, -8388600),
-
- TEST_f_l (lrint, 1071930.0008, 1071930),
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824),
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656),
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
END_DATA (lrint_tonearest)
@@ -10063,26 +10046,26 @@
static const struct test_f_l_data lrint_towardzero_test_data[] =
{
START_DATA (lrint_towardzero),
- TEST_f_l (lrint, 0.0, 0),
- TEST_f_l (lrint, minus_zero, 0),
- TEST_f_l (lrint, 0.2L, 0),
- TEST_f_l (lrint, -0.2L, 0),
- TEST_f_l (lrint, 0.5L, 0),
- TEST_f_l (lrint, -0.5L, 0),
- TEST_f_l (lrint, 0.8L, 0),
- TEST_f_l (lrint, -0.8L, 0),
-
- TEST_f_l (lrint, 1.4L, 1),
- TEST_f_l (lrint, -1.4L, -1),
-
- TEST_f_l (lrint, 8388600.3L, 8388600),
- TEST_f_l (lrint, -8388600.3L, -8388600),
-
- TEST_f_l (lrint, 1071930.0008, 1071930),
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824),
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656),
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
END_DATA (lrint_towardzero)
@@ -10100,26 +10083,26 @@
static const struct test_f_l_data lrint_downward_test_data[] =
{
START_DATA (lrint_downward),
- TEST_f_l (lrint, 0.0, 0),
- TEST_f_l (lrint, minus_zero, 0),
- TEST_f_l (lrint, 0.2L, 0),
- TEST_f_l (lrint, -0.2L, -1),
- TEST_f_l (lrint, 0.5L, 0),
- TEST_f_l (lrint, -0.5L, -1),
- TEST_f_l (lrint, 0.8L, 0),
- TEST_f_l (lrint, -0.8L, -1),
-
- TEST_f_l (lrint, 1.4L, 1),
- TEST_f_l (lrint, -1.4L, -2),
-
- TEST_f_l (lrint, 8388600.3L, 8388600),
- TEST_f_l (lrint, -8388600.3L, -8388601),
-
- TEST_f_l (lrint, 1071930.0008, 1071930),
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, -1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, -1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -2, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388601, INEXACT_EXCEPTION),
+
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1073741824.01, 1073741824),
-# if LONG_MAX > 281474976710656
- TEST_f_l (lrint, 281474976710656.025, 281474976710656),
+ TEST_f_l (lrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741824, INEXACT_EXCEPTION),
+# if LONG_MAX > 281474976710656 && defined TEST_LDOUBLE
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710656, INEXACT_EXCEPTION),
# endif
#endif
END_DATA (lrint_downward)
@@ -10137,26 +10120,26 @@
static const struct test_f_l_data lrint_upward_test_data[] =
{
START_DATA (lrint_upward),
- TEST_f_l (lrint, 0.0, 0),
- TEST_f_l (lrint, minus_zero, 0),
- TEST_f_l (lrint, 0.2L, 1),
- TEST_f_l (lrint, -0.2L, 0),
- TEST_f_l (lrint, 0.5L, 1),
- TEST_f_l (lrint, -0.5L, 0),
- TEST_f_l (lrint, 0.8L, 1),
- TEST_f_l (lrint, -0.8L, 0),
-
- TEST_f_l (lrint, 1.4L, 2),
- TEST_f_l (lrint, -1.4L, -1),
-
- TEST_f_l (lrint, 8388600.3L, 8388601),
- TEST_f_l (lrint, -8388600.3L, -8388600),
+ TEST_f_l (lrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.2L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.5L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.5L, 0, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 0.8L, 1, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -0.8L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 1.4L, 2, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_l (lrint, 8388600.3L, 8388601, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
#ifndef TEST_FLOAT
- TEST_f_l (lrint, 1071930.0008, 1071931),
- TEST_f_l (lrint, 1073741824.01, 1073741825),
+ TEST_f_l (lrint, 1071930.0008, 1071931, INEXACT_EXCEPTION),
+ TEST_f_l (lrint, 1073741824.01, 1073741825, INEXACT_EXCEPTION),
# if LONG_MAX > 281474976710656 && defined (TEST_LDOUBLE)
- TEST_f_l (lrint, 281474976710656.025, 281474976710656),
+ TEST_f_l (lrint, 281474976710656.025L, 281474976710657, INEXACT_EXCEPTION),
# endif
#endif
END_DATA (lrint_upward)
@@ -10178,125 +10161,127 @@
the rounding method and test the critical cases. So far, only
unproblematic numbers are tested. */
/* TODO: missing +/-Inf as well as qNaN tests. */
- TEST_f_L (llrint, 0.0, 0),
- TEST_f_L (llrint, minus_zero, 0),
- TEST_f_L (llrint, 0.2L, 0),
- TEST_f_L (llrint, -0.2L, 0),
-
- TEST_f_L (llrint, 1.4L, 1),
- TEST_f_L (llrint, -1.4L, -1),
-
- TEST_f_L (llrint, 8388600.3L, 8388600),
- TEST_f_L (llrint, -8388600.3L, -8388600),
-
- TEST_f_L (llrint, 1071930.0008, 1071930),
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
/* Test boundary conditions. */
/* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL),
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
/* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL),
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
/* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL),
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL),
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
/* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL),
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
/* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL),
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
/* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL),
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
/* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL),
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL),
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
/* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL),
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
/* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL),
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
/* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL),
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL),
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL),
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL),
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL),
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL),
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL),
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL),
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL),
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL),
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL),
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL),
-#endif
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL),
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL),
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL),
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL),
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL),
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL),
-#endif
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL),
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL),
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL),
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL),
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L),
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL),
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL),
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL),
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL),
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
END_DATA (llrint)
@@ -10313,125 +10298,127 @@
static const struct test_f_L_data llrint_tonearest_test_data[] =
{
START_DATA (llrint_tonearest),
- TEST_f_L (llrint, 0.0, 0),
- TEST_f_L (llrint, minus_zero, 0),
- TEST_f_L (llrint, 0.2L, 0),
- TEST_f_L (llrint, -0.2L, 0),
-
- TEST_f_L (llrint, 1.4L, 1),
- TEST_f_L (llrint, -1.4L, -1),
-
- TEST_f_L (llrint, 8388600.3L, 8388600),
- TEST_f_L (llrint, -8388600.3L, -8388600),
-
- TEST_f_L (llrint, 1071930.0008, 1071930),
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
/* Test boundary conditions. */
/* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL),
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
/* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL),
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
/* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL),
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL),
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
/* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL),
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
/* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL),
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
/* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL),
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
/* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL),
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL),
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
/* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL),
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
/* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL),
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
/* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL),
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL),
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL),
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL),
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.75L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.5L, 4503599627370498LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.75L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.5L, -4503599627370498LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL),
- TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL),
- TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL),
- TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL),
-
- TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL),
- TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL),
- TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL),
- TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL),
-#endif
-
- TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL),
-
- TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL),
+ TEST_f_L (llrint, 4503599627370495.4999999999999L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.4999999999999L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370497.4999999999999L, 4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370494.5000000000001L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370495.5000000000001L, 4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.5000000000001L, 4503599627370497LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -4503599627370495.4999999999999L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.4999999999999L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370497.4999999999999L, -4503599627370497LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370494.5000000000001L, -4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370495.5000000000001L, -4503599627370496LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -4503599627370496.5000000000001L, -4503599627370497LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 9007199254740991.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.25L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.75L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.25L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.75L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5L, -9007199254740994LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL),
- TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL),
- TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL),
- TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL),
-
- TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL),
- TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL),
- TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL),
- TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL),
-#endif
-
- TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL),
- TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL),
- TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL),
-
- TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL),
- TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL),
- TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL),
+ TEST_f_L (llrint, 9007199254740991.4999999999999L, 9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.4999999999999L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.4999999999999L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740991.5000000000001L, 9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740992.5000000000001L, 9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9007199254740993.5000000000001L, 9007199254740994LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -9007199254740991.4999999999999L, -9007199254740991LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.4999999999999L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.4999999999999L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740991.5000000000001L, -9007199254740992LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740992.5000000000001L, -9007199254740993LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9007199254740993.5000000000001L, -9007199254740994LL, INEXACT_EXCEPTION),
+#endif
+
+ TEST_f_L (llrint, 72057594037927935.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.25L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.5L, 72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927936.75L, 72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 72057594037927937.5L, 72057594037927938LL, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, -72057594037927935.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.25L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.5L, -72057594037927936LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927936.75L, -72057594037927937LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -72057594037927937.5L, -72057594037927938LL, INEXACT_EXCEPTION),
# if LDBL_MANT_DIG > 100
- TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL),
- TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L),
- TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL),
- TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL),
- TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL),
- TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL),
- TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL),
+ TEST_f_L (llrint, 9223372036854775805.5L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775805.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.0L, 9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.0L, -9223372036854775806LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.25L, 9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.25L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.5L, 9223372036854775806L, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.5L, -9223372036854775806LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775806.75L, 9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775806.75L, -9223372036854775807LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 9223372036854775807.0L, 9223372036854775807LL, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -9223372036854775807.0L, -9223372036854775807LL, NO_INEXACT_EXCEPTION),
# endif
#endif
END_DATA (llrint_tonearest)
@@ -10448,125 +10435,127 @@
static const struct test_f_L_data llrint_towardzero_test_data[] =
{
START_DATA (llrint_towardzero),
- TEST_f_L (llrint, 0.0, 0),
- TEST_f_L (llrint, minus_zero, 0),
- TEST_f_L (llrint, 0.2L, 0),
- TEST_f_L (llrint, -0.2L, 0),
-
- TEST_f_L (llrint, 1.4L, 1),
- TEST_f_L (llrint, -1.4L, -1),
-
- TEST_f_L (llrint, 8388600.3L, 8388600),
- TEST_f_L (llrint, -8388600.3L, -8388600),
-
- TEST_f_L (llrint, 1071930.0008, 1071930),
+ TEST_f_L (llrint, 0.0, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, minus_zero, 0, NO_INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 0.2L, 0, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -0.2L, 0, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 1.4L, 1, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -1.4L, -1, INEXACT_EXCEPTION),
+
+ TEST_f_L (llrint, 8388600.3L, 8388600, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, -8388600.3L, -8388600, INEXACT_EXCEPTION),
+
+#ifndef TEST_FLOAT
+ TEST_f_L (llrint, 1071930.0008, 1071930, INEXACT_EXCEPTION),
+#endif
/* Test boundary conditions. */
/* 0x1FFFFF */
- TEST_f_L (llrint, 2097151.0,2097151LL),
+ TEST_f_L (llrint, 2097151.0,2097151LL, NO_INEXACT_EXCEPTION),
/* 0x800000 */
- TEST_f_L (llrint, 8388608.0, 8388608LL),
+ TEST_f_L (llrint, 8388608.0, 8388608LL, NO_INEXACT_EXCEPTION),
/* 0x1000000 */
- TEST_f_L (llrint, 16777216.0, 16777216LL),
+ TEST_f_L (llrint, 16777216.0, 16777216LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000 */
- TEST_f_L (llrint, 2199023255552.0, 2199023255552LL),
+ TEST_f_L (llrint, 2199023255552.0, 2199023255552LL, NO_INEXACT_EXCEPTION),
/* 0x40000000000 */
- TEST_f_L (llrint, 4398046511104.0, 4398046511104LL),
+ TEST_f_L (llrint, 4398046511104.0, 4398046511104LL, NO_INEXACT_EXCEPTION),
/* 0x1000000000000 */
- TEST_f_L (llrint, 281474976710656.0, 281474976710656LL),
+ TEST_f_L (llrint, 281474976710656.0, 281474976710656LL, NO_INEXACT_EXCEPTION),
/* 0x10000000000000 */
- TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL),
+ TEST_f_L (llrint, 4503599627370496.0, 4503599627370496LL, NO_INEXACT_EXCEPTION),
/* 0x10000080000000 */
- TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL),
+ TEST_f_L (llrint, 4503601774854144.0, 4503601774854144LL, NO_INEXACT_EXCEPTION),
/* 0x20000000000000 */
- TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL),
+ TEST_f_L (llrint, 9007199254740992.0, 9007199254740992LL, NO_INEXACT_EXCEPTION),
/* 0x80000000000000 */
- TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL),
+ TEST_f_L (llrint, 36028797018963968.0, 36028797018963968LL, NO_INEXACT_EXCEPTION),
/* 0x100000000000000 */
- TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL),
+ TEST_f_L (llrint, 72057594037927936.0, 72057594037927936LL, NO_INEXACT_EXCEPTION),
#ifdef TEST_LDOUBLE
/* The input can only be represented in long double. */
- TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL),
- TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.5L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370496.75L, 4503599627370496LL),
- TEST_f_L (llrint, 4503599627370497.5L, 4503599627370497LL),
-
- TEST_f_L (llrint, -4503599627370495.5L, -4503599627370495LL),
- TEST_f_L (llrint, -4503599627370496.25L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.5L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370496.75L, -4503599627370496LL),
- TEST_f_L (llrint, -4503599627370497.5L, -4503599627370497LL),
+ TEST_f_L (llrint, 4503599627370495.5L, 4503599627370495LL, INEXACT_EXCEPTION),
+ TEST_f_L (llrint, 4503599627370496.25L, 4503599627370496LL, INEXACT_EXCEPTION),
[... 1442 lines stripped ...]
_______________________________________________
Commits mailing list
Commits@xxxxxxxxxx
http://eglibc.org/cgi-bin/mailman/listinfo/commits