From patchwork Wed Aug 1 11:21:55 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 28711 Received: (qmail 83197 invoked by alias); 1 Aug 2018 11:22:04 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 83184 invoked by uid 89); 1 Aug 2018 11:22:03 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-24.5 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy= X-HELO: relay1.mentorg.com Date: Wed, 1 Aug 2018 11:21:55 +0000 From: Joseph Myers To: Subject: Move SNAN_TESTS_PRESERVE_PAYLOAD out of math-tests.h [committed] Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 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. 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. diff --git a/sysdeps/generic/math-tests-snan-payload.h b/sysdeps/generic/math-tests-snan-payload.h new file mode 100644 index 0000000..ae63e6f --- /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 8f5f806..a768ab8 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 0000000..aa4e0a0 --- /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 2fb3a55..0000000 --- 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 0000000..cb2cae5 --- /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 941d38b..8e0b98b 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 0000000..81849e2 --- /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 32a8356..3db33b0 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