From c73c7fc07c001f2a907a9c6d50c57d377ce0351f Mon Sep 17 00:00:00 2001 From: Chris Metcalf Date: Wed, 16 Nov 2016 10:09:50 -0500 Subject: [PATCH] tile: create new math-tests.h header The header makes tile use the new mechanisms for suppressing exception and rounding support (the ROUNDING_TESTS_xxx() and EXCEPTION_TESTS_xxx macros). More importantly, it also now sets SNAN_TESTS_PRESERVE_PAYLOAD to 0, since the tilegx fp hardware does not preserve NaN payloads. --- ChangeLog | 2 ++ sysdeps/tile/math-tests.h | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 sysdeps/tile/math-tests.h diff --git a/ChangeLog b/ChangeLog index c09246e3f6..4c90aa099e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,7 @@ 2016-11-18 Chris Metcalf + * sysdeps/tile/math-tests.h: New file. + * sysdeps/unix/sysv/linux/tile/set_dataplane.c (__old_set_dataplane): Rename from set_dataplane and make a compatibility symbol. diff --git a/sysdeps/tile/math-tests.h b/sysdeps/tile/math-tests.h new file mode 100644 index 0000000000..c0a775351b --- /dev/null +++ b/sysdeps/tile/math-tests.h @@ -0,0 +1,30 @@ +/* Configuration for math tests. Tile version. + Copyright (C) 2013-2016 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 + . */ + +/* Tile hardware/softfloat does not support exceptions and rounding modes. */ +#define ROUNDING_TESTS_float(MODE) ((MODE) == FE_TONEAREST) +#define ROUNDING_TESTS_double(MODE) ((MODE) == FE_TONEAREST) +#define ROUNDING_TESTS_long_double(MODE) ((MODE) == FE_TONEAREST) +#define EXCEPTION_TESTS_float 0 +#define EXCEPTION_TESTS_double 0 +#define EXCEPTION_TESTS_long_double 0 + +/* Tile hardware/softfloat floating-point ops do not preserve NaN payloads. */ +#define SNAN_TESTS_PRESERVE_PAYLOAD 0 + +#include_next -- 2.43.5