Skip to content

Commit cedea5b

Browse files
committed
[libc++] std::cmp_less and other integer comparison functions could be improved with _LIBCPP_ASSUME
1 parent d98f191 commit cedea5b

File tree

1 file changed

+4
-4
lines changed
  • libcxx/include/__utility

1 file changed

+4
-4
lines changed

libcxx/include/__utility/cmp.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,10 @@ _LIBCPP_BEGIN_NAMESPACE_STD
2929
template <__signed_or_unsigned_integer _Tp, __signed_or_unsigned_integer _Up>
3030
_LIBCPP_HIDE_FROM_ABI constexpr bool cmp_equal(_Tp __t, _Up __u) noexcept {
3131
if constexpr (sizeof(_Tp) < sizeof(int) && sizeof(_Up) < sizeof(int)) {
32-
__builtin_assume(__t < numeric_limits<int>::max() && __u < numeric_limits<int>::max());
32+
_LIBCPP_ASSUME(__t < numeric_limits<int>::max() && __u < numeric_limits<int>::max());
3333
return static_cast<int>(__t) == static_cast<int>(__u);
3434
} else if constexpr (sizeof(_Tp) < sizeof(long long) && sizeof(_Up) < sizeof(long long)) {
35-
__builtin_assume(__t < numeric_limits<long long>::max() && __u < numeric_limits<long long>::max());
35+
_LIBCPP_ASSUME(__t < numeric_limits<long long>::max() && __u < numeric_limits<long long>::max());
3636
return static_cast<long long>(__t) == static_cast<long long>(__u);
3737
} else if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>)
3838
return __t == __u;
@@ -50,10 +50,10 @@ _LIBCPP_HIDE_FROM_ABI constexpr bool cmp_not_equal(_Tp __t, _Up __u) noexcept {
5050
template <__signed_or_unsigned_integer _Tp, __signed_or_unsigned_integer _Up>
5151
_LIBCPP_HIDE_FROM_ABI constexpr bool cmp_less(_Tp __t, _Up __u) noexcept {
5252
if constexpr (sizeof(_Tp) < sizeof(int) && sizeof(_Up) < sizeof(int)) {
53-
__builtin_assume(__t < numeric_limits<int>::max() && __u < numeric_limits<int>::max());
53+
_LIBCPP_ASSUME(__t < numeric_limits<int>::max() && __u < numeric_limits<int>::max());
5454
return static_cast<int>(__t) < static_cast<int>(__u);
5555
} else if constexpr (sizeof(_Tp) < sizeof(long long) && sizeof(_Up) < sizeof(long long)) {
56-
__builtin_assume(__t < numeric_limits<long long>::max() && __u < numeric_limits<long long>::max());
56+
_LIBCPP_ASSUME(__t < numeric_limits<long long>::max() && __u < numeric_limits<long long>::max());
5757
return static_cast<long long>(__t) < static_cast<long long>(__u);
5858
} else if constexpr (is_signed_v<_Tp> == is_signed_v<_Up>)
5959
return __t < __u;

0 commit comments

Comments
 (0)