Lines Matching refs:val

54  * @val: The value to search
59 static inline int clz32(uint32_t val)
62 return val ? __builtin_clz(val) : 32;
67 if (!(val & 0xFFFF0000U)) {
69 val <<= 16;
71 if (!(val & 0xFF000000U)) {
73 val <<= 8;
75 if (!(val & 0xF0000000U)) {
77 val <<= 4;
79 if (!(val & 0xC0000000U)) {
81 val <<= 2;
83 if (!(val & 0x80000000U)) {
85 val <<= 1;
87 if (!(val & 0x80000000U)) {
96 * @val: The value to search
100 static inline int clo32(uint32_t val)
102 return clz32(~val);
107 * @val: The value to search
112 static inline int clz64(uint64_t val)
115 return val ? __builtin_clzll(val) : 64;
119 if (!(val >> 32)) {
122 val >>= 32;
125 return cnt + clz32(val);
131 * @val: The value to search
135 static inline int clo64(uint64_t val)
137 return clz64(~val);
142 * @val: The value to search
147 static inline int ctz32(uint32_t val)
150 return val ? __builtin_ctz(val) : 32;
156 if (!(val & 0x0000FFFFUL)) {
158 val >>= 16;
160 if (!(val & 0x000000FFUL)) {
162 val >>= 8;
164 if (!(val & 0x0000000FUL)) {
166 val >>= 4;
168 if (!(val & 0x00000003UL)) {
170 val >>= 2;
172 if (!(val & 0x00000001UL)) {
174 val >>= 1;
176 if (!(val & 0x00000001UL)) {
186 * @val: The value to search
190 static inline int cto32(uint32_t val)
192 return ctz32(~val);
197 * @val: The value to search
202 static inline int ctz64(uint64_t val)
205 return val ? __builtin_ctzll(val) : 64;
210 if (!((uint32_t)val)) {
212 val >>= 32;
215 return cnt + ctz32(val);
221 * @val: The value to search
225 static inline int cto64(uint64_t val)
227 return ctz64(~val);
232 * @val: The value to search
234 static inline int ctpop8(uint8_t val)
237 return __builtin_popcount(val);
239 val = (val & 0x55) + ((val >> 1) & 0x55);
240 val = (val & 0x33) + ((val >> 2) & 0x33);
241 val = (val & 0x0f) + ((val >> 4) & 0x0f);
243 return val;
249 * @val: The value to search
251 static inline int ctpop16(uint16_t val)
254 return __builtin_popcount(val);
256 val = (val & 0x5555) + ((val >> 1) & 0x5555);
257 val = (val & 0x3333) + ((val >> 2) & 0x3333);
258 val = (val & 0x0f0f) + ((val >> 4) & 0x0f0f);
259 val = (val & 0x00ff) + ((val >> 8) & 0x00ff);
261 return val;
267 * @val: The value to search
269 static inline int ctpop32(uint32_t val)
272 return __builtin_popcount(val);
274 val = (val & 0x55555555) + ((val >> 1) & 0x55555555);
275 val = (val & 0x33333333) + ((val >> 2) & 0x33333333);
276 val = (val & 0x0f0f0f0f) + ((val >> 4) & 0x0f0f0f0f);
277 val = (val & 0x00ff00ff) + ((val >> 8) & 0x00ff00ff);
278 val = (val & 0x0000ffff) + ((val >> 16) & 0x0000ffff);
280 return val;
286 * @val: The value to search
288 static inline int ctpop64(uint64_t val)
291 return __builtin_popcountll(val);
293 val = (val & 0x5555555555555555ULL) + ((val >> 1) & 0x5555555555555555ULL);
294 val = (val & 0x3333333333333333ULL) + ((val >> 2) & 0x3333333333333333ULL);
295 val = (val & 0x0f0f0f0f0f0f0f0fULL) + ((val >> 4) & 0x0f0f0f0f0f0f0f0fULL);
296 val = (val & 0x00ff00ff00ff00ffULL) + ((val >> 8) & 0x00ff00ff00ff00ffULL);
297 val = (val & 0x0000ffff0000ffffULL) + ((val >> 16) & 0x0000ffff0000ffffULL);
298 val = (val & 0x00000000ffffffffULL) + ((val >> 32) & 0x00000000ffffffffULL);
300 return val;