33// expected-no-diagnostics
44
55constexpr double NaN = __builtin_nan(" " );
6+ constexpr double SNaN = __builtin_nans(" " );
67constexpr double Inf = __builtin_inf();
78constexpr double NegInf = -__builtin_inf();
89
@@ -19,6 +20,18 @@ constexpr double NegInf = -__builtin_inf();
1920 static_assert (T(1.2345 ) == FUNC(T(1.2345 ), NaN)); \
2021 static_assert (__builtin_isnan(FUNC(NaN, NaN)));
2122
23+ #define FMINIMUMNUM_TEST_SNAN (T, FUNC ) \
24+ static_assert (Inf == FUNC(SNaN, Inf)); \
25+ static_assert (NegInf == FUNC(NegInf, SNaN)); \
26+ static_assert (0.0 == FUNC(SNaN, 0.0 )); \
27+ static_assert (-0.0 == FUNC(-0.0 , SNaN)); \
28+ static_assert (T(-1.2345 ) == FUNC(SNaN, T(-1.2345 ))); \
29+ static_assert (T(1.2345 ) == FUNC(T(1.2345 ), SNaN)); \
30+ static_assert (__builtin_isnan(FUNC(SNaN, SNaN))); \
31+ static_assert (__builtin_isnan(FUNC(NaN, SNaN))); \
32+ static_assert (!__builtin_issignaling(FUNC(SNaN, SNaN))); \
33+ static_assert (!__builtin_issignaling(FUNC(NaN, SNaN)));
34+
2235#define FMINIMUMNUM_TEST_INF (T, FUNC ) \
2336 static_assert (NegInf == FUNC(NegInf, Inf)); \
2437 static_assert (0.0 == FUNC(Inf, 0.0 )); \
@@ -42,6 +55,7 @@ constexpr double NegInf = -__builtin_inf();
4255#define LIST_FMINIMUMNUM_TESTS (T, FUNC ) \
4356 FMINIMUMNUM_TEST_SIMPLE (T, FUNC) \
4457 FMINIMUMNUM_TEST_NAN(T, FUNC) \
58+ FMINIMUMNUM_TEST_SNAN(T, FUNC) \
4559 FMINIMUMNUM_TEST_INF(T, FUNC) \
4660 FMINIMUMNUM_TEST_NEG_INF(T, FUNC) \
4761 FMINIMUMNUM_TEST_BOTH_ZERO(T, FUNC)
0 commit comments