1 /* Configuration for math tests: sNaN support.  32-bit x86 version.
2    Copyright (C) 2013-2022 Free Software Foundation, Inc.
3    This file is part of the GNU C Library.
4 
5    The GNU C Library is free software; you can redistribute it and/or
6    modify it under the terms of the GNU Lesser General Public
7    License as published by the Free Software Foundation; either
8    version 2.1 of the License, or (at your option) any later version.
9 
10    The GNU C Library is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13    Lesser General Public License for more details.
14 
15    You should have received a copy of the GNU Lesser General Public
16    License along with the GNU C Library; if not, see
17    <https://www.gnu.org/licenses/>.  */
18 
19 #ifndef I386_MATH_TESTS_SNAN_H
20 #define I386_MATH_TESTS_SNAN_H 1
21 
22 /* On 32-bit x86, versions of GCC up to at least 4.8 are happy to use
23    FPU load instructions for sNaN values, and loading a float or
24    double sNaN value will already raise an INVALID exception as well
25    as turn the sNaN into a qNaN, rendering certain tests infeasible in
26    this scenario.  <https://gcc.gnu.org/PR56831>.  */
27 #define SNAN_TESTS_float	0
28 #define SNAN_TESTS_double	0
29 #define SNAN_TESTS_long_double	1
30 
31 /* Before GCC 7, there is no built-in function to provide a __float128
32    sNaN, so most sNaN tests for this type cannot work.  */
33 #if __GNUC_PREREQ (7, 0)
34 # define SNAN_TESTS_float128	1
35 #else
36 # define SNAN_TESTS_float128	0
37 #endif
38 
39 #endif /* math-tests-snan.h.  */
40