@@ -25,6 +25,21 @@ inline unsigned long stdc_leading_zeros(unsigned long x) {
2525inline unsigned long long stdc_leading_zeros (unsigned long long x ) {
2626 return stdc_leading_zeros_ull (x );
2727}
28+ inline unsigned char stdc_leading_ones (unsigned char x ) {
29+ return stdc_leading_ones_uc (x );
30+ }
31+ inline unsigned short stdc_leading_ones (unsigned short x ) {
32+ return stdc_leading_ones_us (x );
33+ }
34+ inline unsigned stdc_leading_ones (unsigned x ) {
35+ return stdc_leading_ones_ui (x );
36+ }
37+ inline unsigned long stdc_leading_ones (unsigned long x ) {
38+ return stdc_leading_ones_ul (x );
39+ }
40+ inline unsigned long long stdc_leading_ones (unsigned long long x ) {
41+ return stdc_leading_ones_ull (x );
42+ }
2843#else
2944#define stdc_leading_zeros (x ) \
3045 _Generic((x), \
@@ -33,6 +48,13 @@ inline unsigned long long stdc_leading_zeros(unsigned long long x) {
3348 unsigned: stdc_leading_zeros_ui, \
3449 unsigned long: stdc_leading_zeros_ul, \
3550 unsigned long long: stdc_leading_zeros_ull)(x)
51+ #define stdc_leading_ones (x ) \
52+ _Generic((x), \
53+ unsigned char: stdc_leading_ones_uc, \
54+ unsigned short: stdc_leading_ones_us, \
55+ unsigned: stdc_leading_ones_ui, \
56+ unsigned long: stdc_leading_ones_ul, \
57+ unsigned long long: stdc_leading_ones_ull)(x)
3658#endif // __cplusplus
3759
3860#endif // __LLVM_LIBC_MACROS_STDBIT_MACROS_H
0 commit comments