Skip to content

Commit 223025a

Browse files
[libc][docs] add page for stdbit.h (#79908)
To build libc docs: - Configure with `-DLLVM_ENABLE_SPHINX=ON -DLIBC_INCLUDE_DOCS=ON` - Build with `ninja docs-libc-html`
1 parent c5edef6 commit 223025a

File tree

2 files changed

+135
-0
lines changed

2 files changed

+135
-0
lines changed

libc/docs/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ stages there is no ABI stability in any form.
6565
math/index.rst
6666
strings
6767
stdio
68+
stdbit
6869

6970
.. toctree::
7071
:hidden:

libc/docs/stdbit.rst

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
=========================
2+
Bitwise Utility Functions
3+
=========================
4+
5+
.. include:: check.rst
6+
7+
---------------
8+
Source location
9+
---------------
10+
11+
- The main source for bitwise utility functions is located at:
12+
``libc/src/stdbit``.
13+
14+
- The source for internal helpers used to implement these is located at:
15+
``libc/src/__support/CPP/bit.h``.
16+
17+
- The tests are located at:
18+
``libc/test/src/stdbit/``, ``libc/test/include/stdbit_test.cpp``, and
19+
``src/__support/CPP/bit_test.cpp``.
20+
21+
---------------------
22+
Implementation Status
23+
---------------------
24+
25+
Functions
26+
=========
27+
28+
; Do not order these, they are as they appear in the standard.
29+
30+
============================ =========
31+
Function Name Available
32+
============================ =========
33+
stdc_leading_zeros_uc
34+
stdc_leading_zeros_us
35+
stdc_leading_zeros_ui
36+
stdc_leading_zeros_ul
37+
stdc_leading_zeros_ull
38+
stdc_leading_ones_uc
39+
stdc_leading_ones_us
40+
stdc_leading_ones_ui
41+
stdc_leading_ones_ul
42+
stdc_leading_ones_ull
43+
stdc_trailing_zeros_uc
44+
stdc_trailing_zeros_us
45+
stdc_trailing_zeros_ui
46+
stdc_trailing_zeros_ul
47+
stdc_trailing_zeros_ull
48+
stdc_trailing_ones_uc
49+
stdc_trailing_ones_us
50+
stdc_trailing_ones_ui
51+
stdc_trailing_ones_ul
52+
stdc_trailing_ones_ull
53+
stdc_first_leading_zero_uc
54+
stdc_first_leading_zero_us
55+
stdc_first_leading_zero_ui
56+
stdc_first_leading_zero_ul
57+
stdc_first_leading_zero_ull
58+
stdc_first_leading_one_uc
59+
stdc_first_leading_one_us
60+
stdc_first_leading_one_ui
61+
stdc_first_leading_one_ul
62+
stdc_first_leading_one_ull
63+
stdc_first_trailing_zero_uc
64+
stdc_first_trailing_zero_us
65+
stdc_first_trailing_zero_ui
66+
stdc_first_trailing_zero_ul
67+
stdc_first_trailing_zero_ull
68+
stdc_first_trailing_one_uc
69+
stdc_first_trailing_one_us
70+
stdc_first_trailing_one_ui
71+
stdc_first_trailing_one_ul
72+
stdc_first_trailing_one_ull
73+
stdc_count_zeros_uc
74+
stdc_count_zeros_us
75+
stdc_count_zeros_ui
76+
stdc_count_zeros_ul
77+
stdc_count_zeros_ull
78+
stdc_count_ones_uc
79+
stdc_count_ones_us
80+
stdc_count_ones_ui
81+
stdc_count_ones_ul
82+
stdc_count_ones_ull
83+
stdc_has_single_bit_uc
84+
stdc_has_single_bit_us
85+
stdc_has_single_bit_ui
86+
stdc_has_single_bit_ul
87+
stdc_has_single_bit_ull
88+
stdc_bit_width_uc
89+
stdc_bit_width_us
90+
stdc_bit_width_ui
91+
stdc_bit_width_ul
92+
stdc_bit_width_ull
93+
stdc_bit_floor_uc
94+
stdc_bit_floor_us
95+
stdc_bit_floor_ui
96+
stdc_bit_floor_ul
97+
stdc_bit_floor_ull
98+
stdc_bit_ceil_uc
99+
stdc_bit_ceil_us
100+
stdc_bit_ceil_ui
101+
stdc_bit_ceil_ul
102+
stdc_bit_ceil_ull
103+
============================ =========
104+
105+
106+
Macros
107+
======
108+
109+
========================= =========
110+
Macro Name Available
111+
========================= =========
112+
__STDC_VERSION_STDBIT_H__
113+
__STDC_ENDIAN_LITTLE__
114+
__STDC_ENDIAN_BIG__
115+
__STDC_ENDIAN_NATIVE__
116+
stdc_leading_zeros
117+
stdc_leading_ones
118+
stdc_trailing_zeros
119+
stdc_trailing_ones
120+
stdc_first_leading_zero
121+
stdc_first_leading_one
122+
stdc_first_trailing_zero
123+
stdc_first_trailing_one
124+
stdc_count_zeros
125+
stdc_count_ones
126+
stdc_has_single_bit
127+
stdc_bit_width
128+
stdc_bit_floor
129+
stdc_bit_ceil
130+
========================= =========
131+
132+
Standards
133+
=========
134+
stdbit.h was specified as part of C23 in section 7.18 "Bit and byte utilities."

0 commit comments

Comments
 (0)