<p dir="ltr"><br>
On Aug 31, 2015 7:35 AM, "Brian Paul" <<a href="mailto:brianp@vmware.com">brianp@vmware.com</a>> wrote:<br>
><br>
> On 08/28/2015 07:36 PM, Jason Ekstrand wrote:<br>
>><br>
>><br>
>> On Aug 28, 2015 2:31 PM, "Brian Paul" <<a href="mailto:brianp@vmware.com">brianp@vmware.com</a><br>
>> <mailto:<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<br>
>> 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>
>>  > +<br>
>><br>
>> Might be better to do<br>
>><br>
>> if (val & 0xffffffff)<br>
>>      return ffs(val &0xffffffff);<br>
>> else<br>
>>      return ffs(val >> 32);<br>
>><br>
>> That may be a little cheaper.  I don't know if its actually better but<br>
>> its one less ffs call (which may cross a library boundary)<br>
><br>
><br>
> I like that too, but I just copied the implementation from imports.c<br>
> As was suggested, we can look at consolidating this function and a few others into src/util/ later.</p>
<p dir="ltr">Seems like as good a reason as any any to keep it as-is.</p>
<p dir="ltr">Reviewed-by: Jason Ekstrand <<a href="mailto:jason.ekstrand@intel.com">jason.ekstrand@intel.com</a>></p>
<p dir="ltr">> -Brian<br>
><br>
>> --Jason<br>
>><br>
>>  > +   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> <mailto:<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>
>> <<a href="https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=u0DJgAjhxxl7RyNVZSQ37HS6W5StpIt-qUTJtm0MFVk&s=_xGcOvu0RaFHWkqySgjs5TAsOM1kiitqJg77nThabd0&e=">https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.freedesktop.org_mailman_listinfo_mesa-2Ddev&d=BQMFaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=T0t4QG7chq2ZwJo6wilkFznRSFy-8uDKartPGbomVj8&m=u0DJgAjhxxl7RyNVZSQ37HS6W5StpIt-qUTJtm0MFVk&s=_xGcOvu0RaFHWkqySgjs5TAsOM1kiitqJg77nThabd0&e=</a>><br>
>><br>
><br>
</p>