@@ -194,11 +194,19 @@ int main(int, char**) {
194
194
ASSERT_NOT_CONSTEXPR_CXX23 (std::fminf (1 .0f , 0 .0f ) == 0 .0f );
195
195
ASSERT_NOT_CONSTEXPR_CXX23 (std::fminl (1 .0L , 0 .0L ) == 0 .0L );
196
196
197
+ #if !__has_constexpr_builtin(__builtin_fma)
197
198
ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
198
199
ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1.0 , 1.0 , 1.0 ) == 2.0 );
199
200
ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1 .0L , 1 .0L , 1 .0L ) == 2 .0L );
200
201
ASSERT_NOT_CONSTEXPR_CXX23 (std::fmaf (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
201
202
ASSERT_NOT_CONSTEXPR_CXX23 (std::fmal (1 .0L , 1 .0L , 1 .0L ) == 2 .0L );
203
+ #else
204
+ ASSERT_CONSTEXPR_CXX23 (std::fma (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
205
+ ASSERT_CONSTEXPR_CXX23 (std::fma (1.0 , 1.0 , 1.0 ) == 2.0 );
206
+ ASSERT_CONSTEXPR_CXX23 (std::fma (1 .0L , 1 .0L , 1 .0L ) == 2 .0L );
207
+ ASSERT_CONSTEXPR_CXX23 (std::fmaf (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
208
+ ASSERT_CONSTEXPR_CXX23 (std::fmal (1 .0L , 1 .0L , 1 .0L ) == 2 .0L );
209
+ #endif
202
210
203
211
ASSERT_NOT_CONSTEXPR_CXX23 (std::fpclassify (-1 .0f ) == FP_NORMAL);
204
212
ASSERT_NOT_CONSTEXPR_CXX23 (std::fpclassify (-1.0 ) == FP_NORMAL);
0 commit comments