2 /* { dg-add-options ieee } */
3 /* { dg-require-effective-target fenv_exceptions_long_double } */
4 /* { dg-skip-if "fenv" { powerpc-ibm-aix* } } */
8 #define TEST_C_NOEX(CMP, S) \
9 r = nan##S CMP arg##S; \
10 if (fetestexcept (FE_INVALID)) \
13 #define TEST_B_NOEX(FN, S) \
14 r = __builtin_##FN (nan##S, arg##S); \
15 if (fetestexcept (FE_INVALID)) \
18 #define TEST_C_EX(CMP, S) \
19 r = nan##S CMP arg##S; \
20 if (!fetestexcept (FE_INVALID)) \
22 feclearexcept (FE_INVALID)
24 #define TEST(TYPE, S) \
25 volatile TYPE nan##S = __builtin_nan##S (""); \
26 volatile TYPE arg##S = 1.0##S; \
28 TEST_C_NOEX (==, S); \
29 TEST_C_NOEX (!=, S); \
31 TEST_B_NOEX (isgreater, S); \
32 TEST_B_NOEX (isless, S); \
33 TEST_B_NOEX (isgreaterequal, S); \
34 TEST_B_NOEX (islessequal, S); \
36 TEST_B_NOEX (islessgreater, S); \
37 TEST_B_NOEX (isunordered, S); \
49 feclearexcept (FE_INVALID
);
53 #if !defined(__hppa__) || !defined(__hpux__)
54 /* Long double on hppa*-hpux* is implemented in software and the routines
55 in fenv.h do not support it. */
56 TEST (long double, l
);