[libc-commits] [libc] [libc] move non <bit> functions to math_extras (PR #84818)
via libc-commits
libc-commits at lists.llvm.org
Mon Mar 11 12:50:45 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-libc
Author: Nick Desaulniers (nickdesaulniers)
<details>
<summary>Changes</summary>
As per TODOs added in
https://github.com/llvm/llvm-project/pull/84035/commits/48b0bc837085a38ff1de33010d9222363f70238f.
---
Patch is 27.71 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/84818.diff
31 Files Affected:
- (modified) libc/src/__support/CMakeLists.txt (+1)
- (modified) libc/src/__support/CPP/bit.h (-37)
- (modified) libc/src/__support/math_extras.h (+36-1)
- (modified) libc/src/stdbit/CMakeLists.txt (+27-19)
- (modified) libc/src/stdbit/stdc_count_zeros_uc.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_count_zeros_ui.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_count_zeros_ul.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_count_zeros_ull.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_count_zeros_us.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_one_uc.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_one_ui.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_one_ul.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_one_ull.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_one_us.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_zero_uc.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_zero_ui.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_zero_ul.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_zero_ull.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_leading_zero_us.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_one_uc.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_one_ui.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_one_ul.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_one_ull.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_one_us.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_zero_uc.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_zero_ui.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_zero_ul.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_zero_ull.cpp (+2-2)
- (modified) libc/src/stdbit/stdc_first_trailing_zero_us.cpp (+2-2)
- (modified) libc/test/src/__support/CPP/bit_test.cpp (-32)
- (modified) libc/test/src/__support/math_extras_test.cpp (+40)
``````````diff
diff --git a/libc/src/__support/CMakeLists.txt b/libc/src/__support/CMakeLists.txt
index 2e5a026bf423cd..4c1f271e1df43a 100644
--- a/libc/src/__support/CMakeLists.txt
+++ b/libc/src/__support/CMakeLists.txt
@@ -34,6 +34,7 @@ add_header_library(
HDRS
math_extras.h
DEPENDS
+ libc.src.__support.CPP.bit
libc.src.__support.CPP.limits
libc.src.__support.CPP.type_traits
libc.src.__support.macros.attributes
diff --git a/libc/src/__support/CPP/bit.h b/libc/src/__support/CPP/bit.h
index 1a05728b850653..3f2fbec944054c 100644
--- a/libc/src/__support/CPP/bit.h
+++ b/libc/src/__support/CPP/bit.h
@@ -239,36 +239,6 @@ LIBC_INLINE constexpr To bit_or_static_cast(const From &from) {
}
}
-// TODO: remove from 'bit.h' as it is not a standard function.
-template <typename T>
-[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
-first_leading_zero(T value) {
- return value == cpp::numeric_limits<T>::max() ? 0 : countl_one(value) + 1;
-}
-
-// TODO: remove from 'bit.h' as it is not a standard function.
-template <typename T>
-[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
-first_leading_one(T value) {
- return first_leading_zero(static_cast<T>(~value));
-}
-
-// TODO: remove from 'bit.h' as it is not a standard function.
-template <typename T>
-[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
-first_trailing_zero(T value) {
- return value == cpp::numeric_limits<T>::max()
- ? 0
- : countr_zero(static_cast<T>(~value)) + 1;
-}
-
-// TODO: remove from 'bit.h' as it is not a standard function.
-template <typename T>
-[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
-first_trailing_one(T value) {
- return value == cpp::numeric_limits<T>::max() ? 0 : countr_zero(value) + 1;
-}
-
/// Count number of 1's aka population count or Hamming weight.
///
/// Only unsigned integral types are allowed.
@@ -294,13 +264,6 @@ ADD_SPECIALIZATION(unsigned long long, __builtin_popcountll)
// TODO: 128b specializations?
#undef ADD_SPECIALIZATION
-// TODO: remove from 'bit.h' as it is not a standard function.
-template <typename T>
-[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
-count_zeros(T value) {
- return popcount<T>(static_cast<T>(~value));
-}
-
} // namespace LIBC_NAMESPACE::cpp
#endif // LLVM_LIBC_SRC___SUPPORT_CPP_BIT_H
diff --git a/libc/src/__support/math_extras.h b/libc/src/__support/math_extras.h
index c6b458ddecdabf..28ee1be8b99997 100644
--- a/libc/src/__support/math_extras.h
+++ b/libc/src/__support/math_extras.h
@@ -10,7 +10,8 @@
#ifndef LLVM_LIBC_SRC___SUPPORT_MATH_EXTRAS_H
#define LLVM_LIBC_SRC___SUPPORT_MATH_EXTRAS_H
-#include "src/__support/CPP/limits.h" // CHAR_BIT
+#include "src/__support/CPP/bit.h" // countl_one, countr_zero
+#include "src/__support/CPP/limits.h" // CHAR_BIT, numeric_limits
#include "src/__support/CPP/type_traits.h" // is_unsigned_v
#include "src/__support/macros/attributes.h" // LIBC_INLINE
#include "src/__support/macros/config.h" // LIBC_HAS_BUILTIN
@@ -226,6 +227,40 @@ sub_with_borrow<unsigned long long>(unsigned long long a, unsigned long long b,
#endif // LIBC_HAS_BUILTIN(__builtin_subc)
+template <typename T>
+[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
+first_leading_zero(T value) {
+ return value == cpp::numeric_limits<T>::max() ? 0
+ : cpp::countl_one(value) + 1;
+}
+
+template <typename T>
+[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
+first_leading_one(T value) {
+ return first_leading_zero(static_cast<T>(~value));
+}
+
+template <typename T>
+[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
+first_trailing_zero(T value) {
+ return value == cpp::numeric_limits<T>::max()
+ ? 0
+ : cpp::countr_zero(static_cast<T>(~value)) + 1;
+}
+
+template <typename T>
+[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
+first_trailing_one(T value) {
+ return value == cpp::numeric_limits<T>::max() ? 0
+ : cpp::countr_zero(value) + 1;
+}
+
+template <typename T>
+[[nodiscard]] LIBC_INLINE constexpr cpp::enable_if_t<cpp::is_unsigned_v<T>, int>
+count_zeros(T value) {
+ return cpp::popcount<T>(static_cast<T>(~value));
+}
+
} // namespace LIBC_NAMESPACE
#endif // LLVM_LIBC_SRC___SUPPORT_MATH_EXTRAS_H
diff --git a/libc/src/stdbit/CMakeLists.txt b/libc/src/stdbit/CMakeLists.txt
index 2aef2029f2df0b..0c22b1d2617abb 100644
--- a/libc/src/stdbit/CMakeLists.txt
+++ b/libc/src/stdbit/CMakeLists.txt
@@ -1,30 +1,38 @@
+function(declare_dependencies prefixes dependencies)
+ set(suffixes c s i l ll)
+ foreach(prefix ${prefixes})
+ foreach(suffix IN LISTS suffixes)
+ add_entrypoint_object(
+ stdc_${prefix}_u${suffix}
+ SRCS
+ stdc_${prefix}_u${suffix}.cpp
+ HDRS
+ stdc_${prefix}_u${suffix}.h
+ DEPENDS
+ ${dependencies}
+ )
+ endforeach()
+ endforeach()
+endfunction()
+
+
set(prefixes
leading_zeros
leading_ones
trailing_zeros
trailing_ones
- first_leading_zero
- first_leading_one
- first_trailing_zero
- first_trailing_one
- count_zeros
count_ones
has_single_bit
bit_width
bit_floor
bit_ceil
)
-set(suffixes c s i l ll)
-foreach(prefix IN LISTS prefixes)
- foreach(suffix IN LISTS suffixes)
- add_entrypoint_object(
- stdc_${prefix}_u${suffix}
- SRCS
- stdc_${prefix}_u${suffix}.cpp
- HDRS
- stdc_${prefix}_u${suffix}.h
- DEPENDS
- libc.src.__support.CPP.bit
- )
- endforeach()
-endforeach()
+declare_dependencies("${prefixes}" libc.src.__support.CPP.bit)
+set(prefixes
+ first_leading_zero
+ first_leading_one
+ first_trailing_zero
+ first_trailing_one
+ count_zeros
+)
+declare_dependencies("${prefixes}" libc.src.__support.math_extras)
diff --git a/libc/src/stdbit/stdc_count_zeros_uc.cpp b/libc/src/stdbit/stdc_count_zeros_uc.cpp
index 22c57bd60c3846..309ebb55e0fac1 100644
--- a/libc/src/stdbit/stdc_count_zeros_uc.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_uc.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_count_zeros_uc.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_uc, (unsigned char value)) {
- return static_cast<unsigned>(cpp::count_zeros(value));
+ return static_cast<unsigned>(count_zeros(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_count_zeros_ui.cpp b/libc/src/stdbit/stdc_count_zeros_ui.cpp
index 6a1defd9d555b2..31ea907b24de87 100644
--- a/libc/src/stdbit/stdc_count_zeros_ui.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ui.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_count_zeros_ui.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ui, (unsigned value)) {
- return static_cast<unsigned>(cpp::count_zeros(value));
+ return static_cast<unsigned>(count_zeros(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_count_zeros_ul.cpp b/libc/src/stdbit/stdc_count_zeros_ul.cpp
index ceab32ef9ac36d..f5df5c49f13122 100644
--- a/libc/src/stdbit/stdc_count_zeros_ul.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ul.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_count_zeros_ul.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ul, (unsigned long value)) {
- return static_cast<unsigned>(cpp::count_zeros(value));
+ return static_cast<unsigned>(count_zeros(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_count_zeros_ull.cpp b/libc/src/stdbit/stdc_count_zeros_ull.cpp
index 2f57f727a6919c..6a9c8f04a799fe 100644
--- a/libc/src/stdbit/stdc_count_zeros_ull.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_ull.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_count_zeros_ull.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_ull, (unsigned long long value)) {
- return static_cast<unsigned>(cpp::count_zeros(value));
+ return static_cast<unsigned>(count_zeros(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_count_zeros_us.cpp b/libc/src/stdbit/stdc_count_zeros_us.cpp
index fc06836ee292a9..c08186ec6e87cd 100644
--- a/libc/src/stdbit/stdc_count_zeros_us.cpp
+++ b/libc/src/stdbit/stdc_count_zeros_us.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_count_zeros_us.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_count_zeros_us, (unsigned short value)) {
- return static_cast<unsigned>(cpp::count_zeros(value));
+ return static_cast<unsigned>(count_zeros(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_one_uc.cpp b/libc/src/stdbit/stdc_first_leading_one_uc.cpp
index 02871595fdb6b8..2e28ed3bb6f82d 100644
--- a/libc/src/stdbit/stdc_first_leading_one_uc.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_uc.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_first_leading_one_uc.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_uc, (unsigned char value)) {
- return static_cast<unsigned>(cpp::first_leading_one(value));
+ return static_cast<unsigned>(first_leading_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_one_ui.cpp b/libc/src/stdbit/stdc_first_leading_one_ui.cpp
index a6c7ef5a833914..a07a39b09d9f44 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ui.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ui.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_first_leading_one_ui.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ui, (unsigned value)) {
- return static_cast<unsigned>(cpp::first_leading_one(value));
+ return static_cast<unsigned>(first_leading_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_one_ul.cpp b/libc/src/stdbit/stdc_first_leading_one_ul.cpp
index d1bcab5dda02a9..4350fb7826b49c 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ul.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ul.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_first_leading_one_ul.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ul, (unsigned long value)) {
- return static_cast<unsigned>(cpp::first_leading_one(value));
+ return static_cast<unsigned>(first_leading_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_one_ull.cpp b/libc/src/stdbit/stdc_first_leading_one_ull.cpp
index 7be8f1051ec231..57a5ae368e11ae 100644
--- a/libc/src/stdbit/stdc_first_leading_one_ull.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_ull.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_one_ull.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_ull,
(unsigned long long value)) {
- return static_cast<unsigned>(cpp::first_leading_one(value));
+ return static_cast<unsigned>(first_leading_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_one_us.cpp b/libc/src/stdbit/stdc_first_leading_one_us.cpp
index 7a4c7e673f367f..f14433b13f3500 100644
--- a/libc/src/stdbit/stdc_first_leading_one_us.cpp
+++ b/libc/src/stdbit/stdc_first_leading_one_us.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_one_us.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_one_us,
(unsigned short value)) {
- return static_cast<unsigned>(cpp::first_leading_one(value));
+ return static_cast<unsigned>(first_leading_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_zero_uc.cpp b/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
index ffc1d9247406a2..6e2164256f1722 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_uc.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_zero_uc.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_uc,
(unsigned char value)) {
- return static_cast<unsigned>(cpp::first_leading_zero(value));
+ return static_cast<unsigned>(first_leading_zero(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ui.cpp b/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
index 1eeab2963e6aa7..cb733a94c0d84d 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ui.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_first_leading_zero_ui.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ui, (unsigned value)) {
- return static_cast<unsigned>(cpp::first_leading_zero(value));
+ return static_cast<unsigned>(first_leading_zero(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ul.cpp b/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
index 6743d3eda5168c..8a3930a271ed98 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ul.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_zero_ul.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ul,
(unsigned long value)) {
- return static_cast<unsigned>(cpp::first_leading_zero(value));
+ return static_cast<unsigned>(first_leading_zero(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_zero_ull.cpp b/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
index 8128dd3d59a7bf..5a69197a82996a 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_ull.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_zero_ull.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_ull,
(unsigned long long value)) {
- return static_cast<unsigned>(cpp::first_leading_zero(value));
+ return static_cast<unsigned>(first_leading_zero(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_leading_zero_us.cpp b/libc/src/stdbit/stdc_first_leading_zero_us.cpp
index d931535e7690a6..6482c8654db3b5 100644
--- a/libc/src/stdbit/stdc_first_leading_zero_us.cpp
+++ b/libc/src/stdbit/stdc_first_leading_zero_us.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_leading_zero_us.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_leading_zero_us,
(unsigned short value)) {
- return static_cast<unsigned>(cpp::first_leading_zero(value));
+ return static_cast<unsigned>(first_leading_zero(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_one_uc.cpp b/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
index 6ed35966be61a0..d3e8825eef00fc 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_uc.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_trailing_one_uc.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_uc,
(unsigned char value)) {
- return static_cast<unsigned>(cpp::first_trailing_one(value));
+ return static_cast<unsigned>(first_trailing_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ui.cpp b/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
index a89083bd49507a..842bd699505010 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ui.cpp
@@ -8,13 +8,13 @@
#include "src/stdbit/stdc_first_trailing_one_ui.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ui, (unsigned value)) {
- return static_cast<unsigned>(cpp::first_trailing_one(value));
+ return static_cast<unsigned>(first_trailing_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ul.cpp b/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
index f30078d0f5ffaa..0497d1d77811e4 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ul.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_trailing_one_ul.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ul,
(unsigned long value)) {
- return static_cast<unsigned>(cpp::first_trailing_one(value));
+ return static_cast<unsigned>(first_trailing_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_one_ull.cpp b/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
index 2e526a890cda9c..6e062dd27cdd60 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_ull.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_trailing_one_ull.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_ull,
(unsigned long long value)) {
- return static_cast<unsigned>(cpp::first_trailing_one(value));
+ return static_cast<unsigned>(first_trailing_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_one_us.cpp b/libc/src/stdbit/stdc_first_trailing_one_us.cpp
index e4c88e0d7906b9..e90158f1020495 100644
--- a/libc/src/stdbit/stdc_first_trailing_one_us.cpp
+++ b/libc/src/stdbit/stdc_first_trailing_one_us.cpp
@@ -8,14 +8,14 @@
#include "src/stdbit/stdc_first_trailing_one_us.h"
-#include "src/__support/CPP/bit.h"
#include "src/__support/common.h"
+#include "src/__support/math_extras.h"
namespace LIBC_NAMESPACE {
LLVM_LIBC_FUNCTION(unsigned, stdc_first_trailing_one_us,
(unsigned short value)) {
- return static_cast<unsigned>(cpp::first_trailing_one(value));
+ return static_cast<unsigned>(first_trailing_one(value));
}
} // namespace LIBC_NAMESPACE
diff --git a/libc/src/stdbit/stdc_first_trailing_zero_uc.cpp b/libc/src/s...
[truncated]
``````````
</details>
https://github.com/llvm/llvm-project/pull/84818
More information about the libc-commits
mailing list