On Fri, Nov 15, 2013 at 04:03:32PM -0800, Jarno Rajahalme wrote:
> 
> > On Nov 15, 2013, at 3:48 PM, Ben Pfaff <b...@nicira.com> 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
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to