On Fri, Nov 15, 2013 at 04:03:32PM -0800, Jarno Rajahalme wrote:
>
> > On Nov 15, 2013, at 3:48 PM, Ben Pfaff <[email protected]> wrote:
> >
> >> On Wed, Nov 13, 2013 at 01:32:42PM -0800, Jarno Rajahalme wrote:
> >> Add raw_ctz64(), ctz64(), and popcount64() using builtins when
> >> available.
> >>
> >> I'm not sure if the "UINT64_MAX == ~0UL" and "UINT64_MAX == ~0ULL"
> >> work in all cases as I imagine they would.
> >
> > I think you could use ULONG_MAX and ULLONG_MAX, any reason not to?
>
> It doesn't matter if they are the same in some cases, right?
Actually, I guess we can just skip the test entirely. GCC always
supports 64-bit integers as unsigned long long, so this by itself
ought to do the trick:
#elif __GNUC__ >= 4
static inline int
raw_ctz64(uint64_t n)
{
return __builtin_ctzll(n);
}
static inline int
popcount64(uint64_t n)
{
return __builtin_popcountll(n);
}
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev