<p dir="ltr"><br>
On Aug 28, 2015 2:31 PM, "Brian Paul" <<a href="mailto:brianp@vmware.com">brianp@vmware.com</a>> wrote:<br>
><br>
> v2: fix errant _GNU_SOURCE test, per Matt Turner.<br>
> ---<br>
>  src/gallium/auxiliary/util/u_math.h | 20 ++++++++++++++++++++<br>
>  1 file changed, 20 insertions(+)<br>
><br>
> diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h<br>
> index 56bd185..c551974 100644<br>
> --- a/src/gallium/auxiliary/util/u_math.h<br>
> +++ b/src/gallium/auxiliary/util/u_math.h<br>
> @@ -389,6 +389,26 @@ unsigned ffs( unsigned u )<br>
>  #define ffs __builtin_ffs<br>
>  #endif<br>
><br>
> +#ifdef HAVE___BUILTIN_FFSLL<br>
> +#define ffsll __builtin_ffsll<br>
> +#else<br>
> +static inline int<br>
> +ffsll(long long int val)<br>
> +{<br>
> +   int bit;<br>
> +</p>
<p dir="ltr">Might be better to do</p>
<p dir="ltr">if (val & 0xffffffff)<br>
    return ffs(val &0xffffffff);<br>
else<br>
    return ffs(val >> 32);</p>
<p dir="ltr">That may be a little cheaper.  I don't know if its actually better but its one less ffs call (which may cross a library boundary)<br>
--Jason</p>
<p dir="ltr">> +   bit = ffs((unsigned) (val & 0xffffffff));<br>
> +   if (bit != 0)<br>
> +      return bit;<br>
> +<br>
> +   bit = ffs((unsigned) (val >> 32));<br>
> +   if (bit != 0)<br>
> +      return 32 + bit;<br>
> +<br>
> +   return 0;<br>
> +}<br>
> +#endif<br>
> +<br>
>  #endif /* FFS_DEFINED */<br>
><br>
>  /**<br>
> --<br>
> 1.9.1<br>
><br>
> _______________________________________________<br>
> mesa-dev mailing list<br>
> <a href="mailto:mesa-dev@lists.freedesktop.org">mesa-dev@lists.freedesktop.org</a><br>
> <a href="http://lists.freedesktop.org/mailman/listinfo/mesa-dev">http://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</p>