* add p cc
[mascara-docs.git] / compilers / pcc / pcc-libs-1.0.0 / libpcc / bitcnt.c
blob26ecc01708292ea85b71c8ae108df244c58b6e30
2 int __builtin_clz(unsigned int);
3 int __builtin_ctz(unsigned int);
4 int __builtin_clzl(unsigned long);
5 int __builtin_ctzl(unsigned long);
7 int
8 __builtin_clz(unsigned int v)
10 int i, n = v;
12 for (i = 0; i < 100; i++)
13 if ((n << i) < 0)
14 break;
15 return i;
18 int
19 __builtin_ctz(unsigned int v)
21 int i, n = v;
23 for (i = 0; i < 100; i++)
24 if ((n >> i) & 1)
25 break;
26 return i;
29 int
30 __builtin_clzl(unsigned long v)
32 int i;
33 long n = v;
35 for (i = 0; i < 100; i++)
36 if ((n << i) < 0)
37 break;
38 return i;
41 int
42 __builtin_ctzl(unsigned long v)
44 int i, n = v;
46 for (i = 0; i < 100; i++)
47 if ((n >> i) & 1)
48 break;
49 return i;