@@ -194,11 +194,19 @@ int main(int, char**) {
194194 ASSERT_NOT_CONSTEXPR_CXX23 (std::fminf (1 .0f , 0 .0f ) == 0 .0f );
195195 ASSERT_NOT_CONSTEXPR_CXX23 (std::fminl (1 .0L , 0 .0L ) == 0 .0L );
196196
197+ #if !__has_constexpr_builtin(__builtin_fma)
197198 ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
198199 ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1.0 , 1.0 , 1.0 ) == 2.0 );
199200 ASSERT_NOT_CONSTEXPR_CXX23 (std::fma (1 .0L , 1 .0L , 1 .0L ) == 2 .0L );
200201 ASSERT_NOT_CONSTEXPR_CXX23 (std::fmaf (1 .0f , 1 .0f , 1 .0f ) == 2 .0f );
201202 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
202210
203211 ASSERT_NOT_CONSTEXPR_CXX23 (std::fpclassify (-1 .0f ) == FP_NORMAL);
204212 ASSERT_NOT_CONSTEXPR_CXX23 (std::fpclassify (-1.0 ) == FP_NORMAL);
0 commit comments