From 46f8cf57122c5ec91415c7a8ded3b3f76b4d4610 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Wed, 1 Aug 2018 11:21:16 +0000 Subject: Move SNAN_TESTS_PRESERVE_PAYLOAD out of math-tests.h. Continuing moving macros out of math-tests.h to smaller headers following typo-proof conventions instead of using #ifndef, this patch moves SNAN_TESTS_PRESERVE_PAYLOAD out to its own sysdeps header. Tested with build-many-glibcs.py. * sysdeps/generic/math-tests-snan-payload.h: New file. * sysdeps/hppa/math-tests-snan-payload.h: Likewise. * sysdeps/mips/math-tests-snan-payload.h: Likewise. * sysdeps/riscv/math-tests-snan-payload.h: Likewise. * sysdeps/generic/math-tests.h: Include . (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. * sysdeps/hppa/math-tests.h: Remove file. * sysdeps/mips/math-tests.h [!__mips_nan2008] (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. * sysdeps/riscv/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): Likewise. --- ChangeLog | 13 +++++++++++++ sysdeps/generic/math-tests-snan-payload.h | 28 ++++++++++++++++++++++++++++ sysdeps/generic/math-tests.h | 9 +-------- sysdeps/hppa/math-tests-snan-payload.h | 25 +++++++++++++++++++++++++ sysdeps/hppa/math-tests.h | 22 ---------------------- sysdeps/mips/math-tests-snan-payload.h | 30 ++++++++++++++++++++++++++++++ sysdeps/mips/math-tests.h | 6 ------ sysdeps/riscv/math-tests-snan-payload.h | 26 ++++++++++++++++++++++++++ sysdeps/riscv/math-tests.h | 3 --- 9 files changed, 123 insertions(+), 39 deletions(-) create mode 100644 sysdeps/generic/math-tests-snan-payload.h create mode 100644 sysdeps/hppa/math-tests-snan-payload.h delete mode 100644 sysdeps/hppa/math-tests.h create mode 100644 sysdeps/mips/math-tests-snan-payload.h create mode 100644 sysdeps/riscv/math-tests-snan-payload.h diff --git a/ChangeLog b/ChangeLog index d0ac705919..c724d7dadc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2018-08-01 Joseph Myers + * sysdeps/generic/math-tests-snan-payload.h: New file. + * sysdeps/hppa/math-tests-snan-payload.h: Likewise. + * sysdeps/mips/math-tests-snan-payload.h: Likewise. + * sysdeps/riscv/math-tests-snan-payload.h: Likewise. + * sysdeps/generic/math-tests.h: Include + . + (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. + * sysdeps/hppa/math-tests.h: Remove file. + * sysdeps/mips/math-tests.h [!__mips_nan2008] + (SNAN_TESTS_PRESERVE_PAYLOAD): Do not define macro here. + * sysdeps/riscv/math-tests.h (SNAN_TESTS_PRESERVE_PAYLOAD): + Likewise. + * sysdeps/generic/math-tests-snan-cast.h: New file. * sysdeps/powerpc/math-tests-snan-cast.h: Likewise. * sysdeps/generic/math-tests.h: Include . diff --git a/sysdeps/generic/math-tests-snan-payload.h b/sysdeps/generic/math-tests-snan-payload.h new file mode 100644 index 0000000000..ae63e6f30d --- /dev/null +++ b/sysdeps/generic/math-tests-snan-payload.h @@ -0,0 +1,28 @@ +/* Configuration for math tests: sNaN payloads. Generic version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef _MATH_TESTS_SNAN_PAYLOAD_H +#define _MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* Indicate whether operations on signaling NaNs preserve the payload + (if possible; it is not possible with a zero payload if the high + bit is set for signaling NaNs) when generating a quiet NaN, and + this should be tested. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 1 + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/generic/math-tests.h b/sysdeps/generic/math-tests.h index 8f5f80635b..a768ab82e0 100644 --- a/sysdeps/generic/math-tests.h +++ b/sysdeps/generic/math-tests.h @@ -52,14 +52,6 @@ /* Return nonzero value if to run tests involving sNaN values for X. */ #define SNAN_TESTS(x) MATH_TESTS_TG (SNAN_TESTS_, , x) -/* Indicate whether operations on signaling NaNs preserve the payload - (if possible; it is not possible with a zero payload if the high - bit is set for signaling NaNs) when generating a quiet NaN, and - this should be tested. */ -#ifndef SNAN_TESTS_PRESERVE_PAYLOAD -# define SNAN_TESTS_PRESERVE_PAYLOAD 1 -#endif - /* Indicate whether to run tests involving a given rounding mode for a given floating-point type, given that fesetround succeeds for that mode. All are run if fesetround succeeds unless overridden. */ @@ -118,3 +110,4 @@ #endif #include +#include diff --git a/sysdeps/hppa/math-tests-snan-payload.h b/sysdeps/hppa/math-tests-snan-payload.h new file mode 100644 index 0000000000..aa4e0a044f --- /dev/null +++ b/sysdeps/hppa/math-tests-snan-payload.h @@ -0,0 +1,25 @@ +/* Configuration for math tests: sNaN payloads. hppa version. + Copyright (C) 2017-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef HPPA_MATH_TESTS_SNAN_PAYLOAD_H +#define HPPA_MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* SNaN tests do not preserve payloads. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 0 + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/hppa/math-tests.h b/sysdeps/hppa/math-tests.h deleted file mode 100644 index 2fb3a55899..0000000000 --- a/sysdeps/hppa/math-tests.h +++ /dev/null @@ -1,22 +0,0 @@ -/* Configuration for math tests. hppa version. - Copyright (C) 2017-2018 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - . */ - -/* SNaN tests do not preserve payloads. */ -#define SNAN_TESTS_PRESERVE_PAYLOAD 0 - -#include_next diff --git a/sysdeps/mips/math-tests-snan-payload.h b/sysdeps/mips/math-tests-snan-payload.h new file mode 100644 index 0000000000..cb2cae5729 --- /dev/null +++ b/sysdeps/mips/math-tests-snan-payload.h @@ -0,0 +1,30 @@ +/* Configuration for math tests: sNaN payloads. MIPS version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef MIPS_MATH_TESTS_SNAN_PAYLOAD_H +#define MIPS_MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* NaN payload preservation when converting a signaling NaN to quiet + is only required in NAN2008 mode. */ +#ifdef __mips_nan2008 +# define SNAN_TESTS_PRESERVE_PAYLOAD 1 +#else +# define SNAN_TESTS_PRESERVE_PAYLOAD 0 +#endif + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/mips/math-tests.h b/sysdeps/mips/math-tests.h index 941d38bdf0..8e0b98bfef 100644 --- a/sysdeps/mips/math-tests.h +++ b/sysdeps/mips/math-tests.h @@ -29,10 +29,4 @@ # define EXCEPTION_TESTS_long_double 0 #endif -/* NaN payload preservation when converting a signaling NaN to quiet - is only required in NAN2008 mode. */ -#ifndef __mips_nan2008 -# define SNAN_TESTS_PRESERVE_PAYLOAD 0 -#endif - #include_next diff --git a/sysdeps/riscv/math-tests-snan-payload.h b/sysdeps/riscv/math-tests-snan-payload.h new file mode 100644 index 0000000000..81849e2635 --- /dev/null +++ b/sysdeps/riscv/math-tests-snan-payload.h @@ -0,0 +1,26 @@ +/* Configuration for math tests: sNaN payloads. RISC-V version. + Copyright (C) 2016-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#ifndef RISCV_MATH_TESTS_SNAN_PAYLOAD_H +#define RISCV_MATH_TESTS_SNAN_PAYLOAD_H 1 + +/* RISC-V floating-point instructions do not preserve NaN + payloads. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 0 + +#endif /* math-tests-snan-payload.h. */ diff --git a/sysdeps/riscv/math-tests.h b/sysdeps/riscv/math-tests.h index 32a8356a78..3db33b0e9a 100644 --- a/sysdeps/riscv/math-tests.h +++ b/sysdeps/riscv/math-tests.h @@ -36,7 +36,4 @@ # define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) #endif -/* RISC-V floating-point instructions do not preserve NaN payloads. */ -#define SNAN_TESTS_PRESERVE_PAYLOAD 0 - #include_next -- cgit 1.4.1