diff options
| author | Louis Dionne <ldionne@apple.com> | 2018-11-01 21:24:32 +0000 |
|---|---|---|
| committer | Louis Dionne <ldionne@apple.com> | 2018-11-01 21:24:32 +0000 |
| commit | e0a724ef9c897b29be40c8b284ad4485d84effff (patch) | |
| tree | bd5cf8f90ae9920a7fc7b27c0edd588a72982b81 /libcxx/test | |
| parent | df19e57a1c39feb0c89170ffdb3a335f78d4bccf (diff) | |
| download | bcm5719-llvm-e0a724ef9c897b29be40c8b284ad4485d84effff.tar.gz bcm5719-llvm-e0a724ef9c897b29be40c8b284ad4485d84effff.zip | |
Revert "Bug 39129: Speeding up partition_point/lower_bound/upper_bound/ by using unsigned division by 2 when possible."
This reverts r345525. I'm reverting because that patch apparently caused
a regression on certain platforms (see https://reviews.llvm.org/D53994).
Since we don't fully understand the reasons for the regression, I'm
reverting until we can provide a fix we understand.
llvm-svn: 345893
Diffstat (limited to 'libcxx/test')
| -rw-r--r-- | libcxx/test/libcxx/algorithms/half_positive.pass.cpp | 59 |
1 files changed, 0 insertions, 59 deletions
diff --git a/libcxx/test/libcxx/algorithms/half_positive.pass.cpp b/libcxx/test/libcxx/algorithms/half_positive.pass.cpp deleted file mode 100644 index 178055cbbd0..00000000000 --- a/libcxx/test/libcxx/algorithms/half_positive.pass.cpp +++ /dev/null @@ -1,59 +0,0 @@ -//===----------------------------------------------------------------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is dual licensed under the MIT and the University of Illinois Open -// Source Licenses. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -// <algorithm> - -// template <typename _Tp> _Tp __half_positive(const _Tp&); - -// __half_positive divide integer number by 2 as unsigned number -// if it's safe to do so. It can be an important optimization for lower bound, -// for example. - -#include <algorithm> -#include <cassert> -#include <limits> -#include <type_traits> - -#include "test_macros.h" -#include "user_defined_integral.hpp" - -namespace { - -template <class IntType, class UnderlyingType = IntType> -TEST_CONSTEXPR bool test(IntType max_v = IntType(std::numeric_limits<UnderlyingType>::max())) { - return std::__half_positive(max_v) == max_v / 2; -} - -} // namespace - -int main() -{ - { - assert(test<char>()); - assert(test<int>()); - assert(test<long>()); - assert((test<UserDefinedIntegral<int>, int>())); - assert(test<size_t>()); -#if !defined(_LIBCPP_HAS_NO_INT128) - assert(test<__int128_t>()); -#endif // !defined(_LIBCPP_HAS_NO_INT128) - } - -#if TEST_STD_VER >= 11 - { - static_assert(test<char>(), ""); - static_assert(test<int>(), ""); - static_assert(test<long>(), ""); - static_assert(test<size_t>(), ""); -#if !defined(_LIBCPP_HAS_NO_INT128) - static_assert(test<__int128_t>(), ""); -#endif // !defined(_LIBCPP_HAS_NO_INT128) - } -#endif // TEST_STD_VER >= 11 -} |

