1*71db0c75SAndroid Build Coastguard Worker //===-- Definition of macros to be used with stdbit functions ----------===//
2*71db0c75SAndroid Build Coastguard Worker //
3*71db0c75SAndroid Build Coastguard Worker // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*71db0c75SAndroid Build Coastguard Worker // See https://llvm.org/LICENSE.txt for license information.
5*71db0c75SAndroid Build Coastguard Worker // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*71db0c75SAndroid Build Coastguard Worker //
7*71db0c75SAndroid Build Coastguard Worker //===----------------------------------------------------------------------===//
8*71db0c75SAndroid Build Coastguard Worker
9*71db0c75SAndroid Build Coastguard Worker #ifndef __LLVM_LIBC_MACROS_STDBIT_MACROS_H
10*71db0c75SAndroid Build Coastguard Worker #define __LLVM_LIBC_MACROS_STDBIT_MACROS_H
11*71db0c75SAndroid Build Coastguard Worker
12*71db0c75SAndroid Build Coastguard Worker #define __STDC_VERSION_STDBIT_H__ 202311L
13*71db0c75SAndroid Build Coastguard Worker #define __STDC_ENDIAN_LITTLE__ __ORDER_LITTLE_ENDIAN__
14*71db0c75SAndroid Build Coastguard Worker #define __STDC_ENDIAN_BIG__ __ORDER_BIG_ENDIAN__
15*71db0c75SAndroid Build Coastguard Worker #define __STDC_ENDIAN_NATIVE__ __BYTE_ORDER__
16*71db0c75SAndroid Build Coastguard Worker
17*71db0c75SAndroid Build Coastguard Worker // TODO(https://github.com/llvm/llvm-project/issues/80509): support _BitInt().
18*71db0c75SAndroid Build Coastguard Worker #ifdef __cplusplus
stdc_leading_zeros(unsigned char x)19*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_zeros(unsigned char x) {
20*71db0c75SAndroid Build Coastguard Worker return stdc_leading_zeros_uc(x);
21*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_zeros(unsigned short x)22*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_zeros(unsigned short x) {
23*71db0c75SAndroid Build Coastguard Worker return stdc_leading_zeros_us(x);
24*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_zeros(unsigned x)25*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_zeros(unsigned x) {
26*71db0c75SAndroid Build Coastguard Worker return stdc_leading_zeros_ui(x);
27*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_zeros(unsigned long x)28*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_zeros(unsigned long x) {
29*71db0c75SAndroid Build Coastguard Worker return stdc_leading_zeros_ul(x);
30*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_zeros(unsigned long long x)31*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_zeros(unsigned long long x) {
32*71db0c75SAndroid Build Coastguard Worker return stdc_leading_zeros_ull(x);
33*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_ones(unsigned char x)34*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_ones(unsigned char x) {
35*71db0c75SAndroid Build Coastguard Worker return stdc_leading_ones_uc(x);
36*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_ones(unsigned short x)37*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_ones(unsigned short x) {
38*71db0c75SAndroid Build Coastguard Worker return stdc_leading_ones_us(x);
39*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_ones(unsigned x)40*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_ones(unsigned x) {
41*71db0c75SAndroid Build Coastguard Worker return stdc_leading_ones_ui(x);
42*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_ones(unsigned long x)43*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_ones(unsigned long x) {
44*71db0c75SAndroid Build Coastguard Worker return stdc_leading_ones_ul(x);
45*71db0c75SAndroid Build Coastguard Worker }
stdc_leading_ones(unsigned long long x)46*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_leading_ones(unsigned long long x) {
47*71db0c75SAndroid Build Coastguard Worker return stdc_leading_ones_ull(x);
48*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_zeros(unsigned char x)49*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_zeros(unsigned char x) {
50*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_zeros_uc(x);
51*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_zeros(unsigned short x)52*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_zeros(unsigned short x) {
53*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_zeros_us(x);
54*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_zeros(unsigned x)55*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_zeros(unsigned x) {
56*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_zeros_ui(x);
57*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_zeros(unsigned long x)58*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_zeros(unsigned long x) {
59*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_zeros_ul(x);
60*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_zeros(unsigned long long x)61*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_zeros(unsigned long long x) {
62*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_zeros_ull(x);
63*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_ones(unsigned char x)64*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_ones(unsigned char x) {
65*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_ones_uc(x);
66*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_ones(unsigned short x)67*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_ones(unsigned short x) {
68*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_ones_us(x);
69*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_ones(unsigned x)70*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_ones(unsigned x) {
71*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_ones_ui(x);
72*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_ones(unsigned long x)73*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_ones(unsigned long x) {
74*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_ones_ul(x);
75*71db0c75SAndroid Build Coastguard Worker }
stdc_trailing_ones(unsigned long long x)76*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_trailing_ones(unsigned long long x) {
77*71db0c75SAndroid Build Coastguard Worker return stdc_trailing_ones_ull(x);
78*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_zero(unsigned char x)79*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_zero(unsigned char x) {
80*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_zero_uc(x);
81*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_zero(unsigned short x)82*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_zero(unsigned short x) {
83*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_zero_us(x);
84*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_zero(unsigned x)85*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_zero(unsigned x) {
86*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_zero_ui(x);
87*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_zero(unsigned long x)88*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_zero(unsigned long x) {
89*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_zero_ul(x);
90*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_zero(unsigned long long x)91*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_zero(unsigned long long x) {
92*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_zero_ull(x);
93*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_one(unsigned char x)94*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_one(unsigned char x) {
95*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_one_uc(x);
96*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_one(unsigned short x)97*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_one(unsigned short x) {
98*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_one_us(x);
99*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_one(unsigned x)100*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_one(unsigned x) {
101*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_one_ui(x);
102*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_one(unsigned long x)103*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_one(unsigned long x) {
104*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_one_ul(x);
105*71db0c75SAndroid Build Coastguard Worker }
stdc_first_leading_one(unsigned long long x)106*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_leading_one(unsigned long long x) {
107*71db0c75SAndroid Build Coastguard Worker return stdc_first_leading_one_ull(x);
108*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_zero(unsigned char x)109*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_zero(unsigned char x) {
110*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_zero_uc(x);
111*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_zero(unsigned short x)112*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_zero(unsigned short x) {
113*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_zero_us(x);
114*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_zero(unsigned x)115*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_zero(unsigned x) {
116*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_zero_ui(x);
117*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_zero(unsigned long x)118*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_zero(unsigned long x) {
119*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_zero_ul(x);
120*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_zero(unsigned long long x)121*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_zero(unsigned long long x) {
122*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_zero_ull(x);
123*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_one(unsigned char x)124*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_one(unsigned char x) {
125*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_one_uc(x);
126*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_one(unsigned short x)127*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_one(unsigned short x) {
128*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_one_us(x);
129*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_one(unsigned x)130*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_one(unsigned x) {
131*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_one_ui(x);
132*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_one(unsigned long x)133*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_one(unsigned long x) {
134*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_one_ul(x);
135*71db0c75SAndroid Build Coastguard Worker }
stdc_first_trailing_one(unsigned long long x)136*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_first_trailing_one(unsigned long long x) {
137*71db0c75SAndroid Build Coastguard Worker return stdc_first_trailing_one_ull(x);
138*71db0c75SAndroid Build Coastguard Worker }
stdc_count_zeros(unsigned char x)139*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_zeros(unsigned char x) {
140*71db0c75SAndroid Build Coastguard Worker return stdc_count_zeros_uc(x);
141*71db0c75SAndroid Build Coastguard Worker }
stdc_count_zeros(unsigned short x)142*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_zeros(unsigned short x) {
143*71db0c75SAndroid Build Coastguard Worker return stdc_count_zeros_us(x);
144*71db0c75SAndroid Build Coastguard Worker }
stdc_count_zeros(unsigned x)145*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_zeros(unsigned x) { return stdc_count_zeros_ui(x); }
stdc_count_zeros(unsigned long x)146*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_zeros(unsigned long x) {
147*71db0c75SAndroid Build Coastguard Worker return stdc_count_zeros_ul(x);
148*71db0c75SAndroid Build Coastguard Worker }
stdc_count_zeros(unsigned long long x)149*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_zeros(unsigned long long x) {
150*71db0c75SAndroid Build Coastguard Worker return stdc_count_zeros_ull(x);
151*71db0c75SAndroid Build Coastguard Worker }
stdc_count_ones(unsigned char x)152*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_ones(unsigned char x) {
153*71db0c75SAndroid Build Coastguard Worker return stdc_count_ones_uc(x);
154*71db0c75SAndroid Build Coastguard Worker }
stdc_count_ones(unsigned short x)155*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_ones(unsigned short x) {
156*71db0c75SAndroid Build Coastguard Worker return stdc_count_ones_us(x);
157*71db0c75SAndroid Build Coastguard Worker }
stdc_count_ones(unsigned x)158*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_ones(unsigned x) { return stdc_count_ones_ui(x); }
stdc_count_ones(unsigned long x)159*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_ones(unsigned long x) {
160*71db0c75SAndroid Build Coastguard Worker return stdc_count_ones_ul(x);
161*71db0c75SAndroid Build Coastguard Worker }
stdc_count_ones(unsigned long long x)162*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_count_ones(unsigned long long x) {
163*71db0c75SAndroid Build Coastguard Worker return stdc_count_ones_ull(x);
164*71db0c75SAndroid Build Coastguard Worker }
stdc_has_single_bit(unsigned char x)165*71db0c75SAndroid Build Coastguard Worker inline bool stdc_has_single_bit(unsigned char x) {
166*71db0c75SAndroid Build Coastguard Worker return stdc_has_single_bit_uc(x);
167*71db0c75SAndroid Build Coastguard Worker }
stdc_has_single_bit(unsigned short x)168*71db0c75SAndroid Build Coastguard Worker inline bool stdc_has_single_bit(unsigned short x) {
169*71db0c75SAndroid Build Coastguard Worker return stdc_has_single_bit_us(x);
170*71db0c75SAndroid Build Coastguard Worker }
stdc_has_single_bit(unsigned x)171*71db0c75SAndroid Build Coastguard Worker inline bool stdc_has_single_bit(unsigned x) {
172*71db0c75SAndroid Build Coastguard Worker return stdc_has_single_bit_ui(x);
173*71db0c75SAndroid Build Coastguard Worker }
stdc_has_single_bit(unsigned long x)174*71db0c75SAndroid Build Coastguard Worker inline bool stdc_has_single_bit(unsigned long x) {
175*71db0c75SAndroid Build Coastguard Worker return stdc_has_single_bit_ul(x);
176*71db0c75SAndroid Build Coastguard Worker }
stdc_has_single_bit(unsigned long long x)177*71db0c75SAndroid Build Coastguard Worker inline bool stdc_has_single_bit(unsigned long long x) {
178*71db0c75SAndroid Build Coastguard Worker return stdc_has_single_bit_ull(x);
179*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_width(unsigned char x)180*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_width(unsigned char x) { return stdc_bit_width_uc(x); }
stdc_bit_width(unsigned short x)181*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_width(unsigned short x) {
182*71db0c75SAndroid Build Coastguard Worker return stdc_bit_width_us(x);
183*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_width(unsigned x)184*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_width(unsigned x) { return stdc_bit_width_ui(x); }
stdc_bit_width(unsigned long x)185*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_width(unsigned long x) { return stdc_bit_width_ul(x); }
stdc_bit_width(unsigned long long x)186*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_width(unsigned long long x) {
187*71db0c75SAndroid Build Coastguard Worker return stdc_bit_width_ull(x);
188*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_floor(unsigned char x)189*71db0c75SAndroid Build Coastguard Worker inline unsigned char stdc_bit_floor(unsigned char x) {
190*71db0c75SAndroid Build Coastguard Worker return stdc_bit_floor_uc(x);
191*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_floor(unsigned short x)192*71db0c75SAndroid Build Coastguard Worker inline unsigned short stdc_bit_floor(unsigned short x) {
193*71db0c75SAndroid Build Coastguard Worker return stdc_bit_floor_us(x);
194*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_floor(unsigned x)195*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_floor(unsigned x) { return stdc_bit_floor_ui(x); }
stdc_bit_floor(unsigned long x)196*71db0c75SAndroid Build Coastguard Worker inline unsigned long stdc_bit_floor(unsigned long x) {
197*71db0c75SAndroid Build Coastguard Worker return stdc_bit_floor_ul(x);
198*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_floor(unsigned long long x)199*71db0c75SAndroid Build Coastguard Worker inline unsigned long long stdc_bit_floor(unsigned long long x) {
200*71db0c75SAndroid Build Coastguard Worker return stdc_bit_floor_ull(x);
201*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_ceil(unsigned char x)202*71db0c75SAndroid Build Coastguard Worker inline unsigned char stdc_bit_ceil(unsigned char x) {
203*71db0c75SAndroid Build Coastguard Worker return stdc_bit_ceil_uc(x);
204*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_ceil(unsigned short x)205*71db0c75SAndroid Build Coastguard Worker inline unsigned short stdc_bit_ceil(unsigned short x) {
206*71db0c75SAndroid Build Coastguard Worker return stdc_bit_ceil_us(x);
207*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_ceil(unsigned x)208*71db0c75SAndroid Build Coastguard Worker inline unsigned stdc_bit_ceil(unsigned x) { return stdc_bit_ceil_ui(x); }
stdc_bit_ceil(unsigned long x)209*71db0c75SAndroid Build Coastguard Worker inline unsigned long stdc_bit_ceil(unsigned long x) {
210*71db0c75SAndroid Build Coastguard Worker return stdc_bit_ceil_ul(x);
211*71db0c75SAndroid Build Coastguard Worker }
stdc_bit_ceil(unsigned long long x)212*71db0c75SAndroid Build Coastguard Worker inline unsigned long long stdc_bit_ceil(unsigned long long x) {
213*71db0c75SAndroid Build Coastguard Worker return stdc_bit_ceil_ull(x);
214*71db0c75SAndroid Build Coastguard Worker }
215*71db0c75SAndroid Build Coastguard Worker #else
216*71db0c75SAndroid Build Coastguard Worker #define stdc_leading_zeros(x) \
217*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
218*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_leading_zeros_uc, \
219*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_leading_zeros_us, \
220*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_leading_zeros_ui, \
221*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_leading_zeros_ul, \
222*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_leading_zeros_ull)(x)
223*71db0c75SAndroid Build Coastguard Worker #define stdc_leading_ones(x) \
224*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
225*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_leading_ones_uc, \
226*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_leading_ones_us, \
227*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_leading_ones_ui, \
228*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_leading_ones_ul, \
229*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_leading_ones_ull)(x)
230*71db0c75SAndroid Build Coastguard Worker #define stdc_trailing_zeros(x) \
231*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
232*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_trailing_zeros_uc, \
233*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_trailing_zeros_us, \
234*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_trailing_zeros_ui, \
235*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_trailing_zeros_ul, \
236*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_trailing_zeros_ull)(x)
237*71db0c75SAndroid Build Coastguard Worker #define stdc_trailing_ones(x) \
238*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
239*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_trailing_ones_uc, \
240*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_trailing_ones_us, \
241*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_trailing_ones_ui, \
242*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_trailing_ones_ul, \
243*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_trailing_ones_ull)(x)
244*71db0c75SAndroid Build Coastguard Worker #define stdc_first_leading_zero(x) \
245*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
246*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_first_leading_zero_uc, \
247*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_first_leading_zero_us, \
248*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_first_leading_zero_ui, \
249*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_first_leading_zero_ul, \
250*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_first_leading_zero_ull)(x)
251*71db0c75SAndroid Build Coastguard Worker #define stdc_first_leading_one(x) \
252*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
253*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_first_leading_one_uc, \
254*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_first_leading_one_us, \
255*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_first_leading_one_ui, \
256*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_first_leading_one_ul, \
257*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_first_leading_one_ull)(x)
258*71db0c75SAndroid Build Coastguard Worker #define stdc_first_trailing_zero(x) \
259*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
260*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_first_trailing_zero_uc, \
261*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_first_trailing_zero_us, \
262*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_first_trailing_zero_ui, \
263*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_first_trailing_zero_ul, \
264*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_first_trailing_zero_ull)(x)
265*71db0c75SAndroid Build Coastguard Worker #define stdc_first_trailing_one(x) \
266*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
267*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_first_trailing_one_uc, \
268*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_first_trailing_one_us, \
269*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_first_trailing_one_ui, \
270*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_first_trailing_one_ul, \
271*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_first_trailing_one_ull)(x)
272*71db0c75SAndroid Build Coastguard Worker #define stdc_count_zeros(x) \
273*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
274*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_count_zeros_uc, \
275*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_count_zeros_us, \
276*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_count_zeros_ui, \
277*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_count_zeros_ul, \
278*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_count_zeros_ull)(x)
279*71db0c75SAndroid Build Coastguard Worker #define stdc_count_ones(x) \
280*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
281*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_count_ones_uc, \
282*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_count_ones_us, \
283*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_count_ones_ui, \
284*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_count_ones_ul, \
285*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_count_ones_ull)(x)
286*71db0c75SAndroid Build Coastguard Worker #define stdc_has_single_bit(x) \
287*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
288*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_has_single_bit_uc, \
289*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_has_single_bit_us, \
290*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_has_single_bit_ui, \
291*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_has_single_bit_ul, \
292*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_has_single_bit_ull)(x)
293*71db0c75SAndroid Build Coastguard Worker #define stdc_bit_width(x) \
294*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
295*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_bit_width_uc, \
296*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_bit_width_us, \
297*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_bit_width_ui, \
298*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_bit_width_ul, \
299*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_bit_width_ull)(x)
300*71db0c75SAndroid Build Coastguard Worker #define stdc_bit_floor(x) \
301*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
302*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_bit_floor_uc, \
303*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_bit_floor_us, \
304*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_bit_floor_ui, \
305*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_bit_floor_ul, \
306*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_bit_floor_ull)(x)
307*71db0c75SAndroid Build Coastguard Worker #define stdc_bit_ceil(x) \
308*71db0c75SAndroid Build Coastguard Worker _Generic((x), \
309*71db0c75SAndroid Build Coastguard Worker unsigned char: stdc_bit_ceil_uc, \
310*71db0c75SAndroid Build Coastguard Worker unsigned short: stdc_bit_ceil_us, \
311*71db0c75SAndroid Build Coastguard Worker unsigned: stdc_bit_ceil_ui, \
312*71db0c75SAndroid Build Coastguard Worker unsigned long: stdc_bit_ceil_ul, \
313*71db0c75SAndroid Build Coastguard Worker unsigned long long: stdc_bit_ceil_ull)(x)
314*71db0c75SAndroid Build Coastguard Worker #endif // __cplusplus
315*71db0c75SAndroid Build Coastguard Worker
316*71db0c75SAndroid Build Coastguard Worker #endif // __LLVM_LIBC_MACROS_STDBIT_MACROS_H
317