Skip to content

Commit 93fcf54

Browse files
overmightyyuxuanchen1997
authored andcommitted
[libc][math] Fix use of float16 not guarded by LIBC_TYPES_HAS_FLOAT16 (#100241)
Summary: Test Plan: Reviewers: Subscribers: Tasks: Tags: Differential Revision: https://phabricator.intern.facebook.com/D60251163
1 parent db5217c commit 93fcf54

File tree

1 file changed

+4
-0
lines changed

1 file changed

+4
-0
lines changed

libc/src/__support/FPUtil/BasicOperations.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ LIBC_INLINE cpp::enable_if_t<cpp::is_floating_point_v<T>, T> max(T x, T y) {
4444
return x > y ? x : y;
4545
}
4646

47+
#ifdef LIBC_TYPES_HAS_FLOAT16
4748
#if defined(__LIBC_USE_BUILTIN_FMAXF16_FMINF16)
4849
template <> LIBC_INLINE float16 max(float16 x, float16 y) {
4950
return __builtin_fmaxf16(x, y);
@@ -58,6 +59,7 @@ template <> LIBC_INLINE float16 max(float16 x, float16 y) {
5859
return ((xi > yi) != (xi < 0 && yi < 0)) ? x : y;
5960
}
6061
#endif
62+
#endif // LIBC_TYPES_HAS_FLOAT16
6163

6264
#if defined(__LIBC_USE_BUILTIN_FMAX_FMIN) && !defined(LIBC_TARGET_ARCH_IS_X86)
6365
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) {
8284
return x < y ? x : y;
8385
}
8486

87+
#ifdef LIBC_TYPES_HAS_FLOAT16
8588
#if defined(__LIBC_USE_BUILTIN_FMAXF16_FMINF16)
8689
template <> LIBC_INLINE float16 min(float16 x, float16 y) {
8790
return __builtin_fminf16(x, y);
@@ -96,6 +99,7 @@ template <> LIBC_INLINE float16 min(float16 x, float16 y) {
9699
return ((xi < yi) != (xi < 0 && yi < 0)) ? x : y;
97100
}
98101
#endif
102+
#endif // LIBC_TYPES_HAS_FLOAT16
99103

100104
#if defined(__LIBC_USE_BUILTIN_FMAX_FMIN) && !defined(LIBC_TARGET_ARCH_IS_X86)
101105
template <> LIBC_INLINE float min(float x, float y) {

0 commit comments

Comments
 (0)