xref: /freebsd/contrib/llvm-project/libcxx/modules/std/bit.inc (revision 5f757f3ff9144b609b3c433dfd370cc6bdc191ad)
1*5f757f3fSDimitry Andric// -*- C++ -*-
2*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
3*5f757f3fSDimitry Andric//
4*5f757f3fSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5*5f757f3fSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
6*5f757f3fSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7*5f757f3fSDimitry Andric//
8*5f757f3fSDimitry Andric//===----------------------------------------------------------------------===//
9*5f757f3fSDimitry Andric
10*5f757f3fSDimitry Andricexport namespace std {
11*5f757f3fSDimitry Andric  // [bit.cast], bit_cast
12*5f757f3fSDimitry Andric  using std::bit_cast;
13*5f757f3fSDimitry Andric
14*5f757f3fSDimitry Andric#if _LIBCPP_STD_VER >= 23
15*5f757f3fSDimitry Andric  // [bit.byteswap], byteswap
16*5f757f3fSDimitry Andric  using std::byteswap;
17*5f757f3fSDimitry Andric#endif
18*5f757f3fSDimitry Andric
19*5f757f3fSDimitry Andric  // [bit.pow.two], integral powers of 2
20*5f757f3fSDimitry Andric  using std::bit_ceil;
21*5f757f3fSDimitry Andric  using std::bit_floor;
22*5f757f3fSDimitry Andric  using std::bit_width;
23*5f757f3fSDimitry Andric  using std::has_single_bit;
24*5f757f3fSDimitry Andric
25*5f757f3fSDimitry Andric  // [bit.rotate], rotating
26*5f757f3fSDimitry Andric  using std::rotl;
27*5f757f3fSDimitry Andric  using std::rotr;
28*5f757f3fSDimitry Andric
29*5f757f3fSDimitry Andric  // [bit.count], counting
30*5f757f3fSDimitry Andric  using std::countl_one;
31*5f757f3fSDimitry Andric  using std::countl_zero;
32*5f757f3fSDimitry Andric  using std::countr_one;
33*5f757f3fSDimitry Andric  using std::countr_zero;
34*5f757f3fSDimitry Andric  using std::popcount;
35*5f757f3fSDimitry Andric
36*5f757f3fSDimitry Andric  // [bit.endian], endian
37*5f757f3fSDimitry Andric  using std::endian;
38*5f757f3fSDimitry Andric} // namespace std
39