@@ -44,6 +44,7 @@ LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, T> max(T x, T y) {
44
44
return x > y ? x : y;
45
45
}
46
46
47
+ #ifdef LIBC_TYPES_HAS_FLOAT16
47
48
#if defined(__LIBC_USE_BUILTIN_FMAXF16_FMINF16)
48
49
template <> LIBC_INLINE float16 max (float16 x, float16 y) {
49
50
return __builtin_fmaxf16 (x, y);
@@ -58,6 +59,7 @@ template <> LIBC_INLINE float16 max(float16 x, float16 y) {
58
59
return ((xi > yi) != (xi < 0 && yi < 0 )) ? x : y;
59
60
}
60
61
#endif
62
+ #endif // LIBC_TYPES_HAS_FLOAT16
61
63
62
64
#if defined(__LIBC_USE_BUILTIN_FMAX_FMIN) && !defined(LIBC_TARGET_ARCH_IS_X86)
63
65
template <> LIBC_INLINE float max (float x, float y) {
@@ -82,6 +84,7 @@ LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, T> min(T x, T y) {
82
84
return x < y ? x : y;
83
85
}
84
86
87
+ #ifdef LIBC_TYPES_HAS_FLOAT16
85
88
#if defined(__LIBC_USE_BUILTIN_FMAXF16_FMINF16)
86
89
template <> LIBC_INLINE float16 min (float16 x, float16 y) {
87
90
return __builtin_fminf16 (x, y);
@@ -96,6 +99,7 @@ template <> LIBC_INLINE float16 min(float16 x, float16 y) {
96
99
return ((xi < yi) != (xi < 0 && yi < 0 )) ? x : y;
97
100
}
98
101
#endif
102
+ #endif // LIBC_TYPES_HAS_FLOAT16
99
103
100
104
#if defined(__LIBC_USE_BUILTIN_FMAX_FMIN) && !defined(LIBC_TARGET_ARCH_IS_X86)
101
105
template <> LIBC_INLINE float min (float x, float y) {
0 commit comments