[Mesa-dev] [PATCH] gallium/util: Don't use __builtin_clrsb in util_last_bit().

Matt Turner mattst88 at gmail.com
Tue Feb 3 12:07:44 PST 2015


On Tue, Feb 3, 2015 at 5:37 AM, Roland Scheidegger <sroland at vmware.com> wrote:
> Am 03.02.2015 um 02:28 schrieb Matt Turner:
>> Unclear circumstances lead to undefined symbols on x86.
>>
>> Bugzilla: https://urldefense.proofpoint.com/v2/url?u=https-3A__bugs.gentoo.org_show-5Fbug.cgi-3Fid-3D536916&d=AwIGaQ&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Vjtt0vs_iqoI31UfJxBl7yv9I2FeiaeAYgMTLKRBc_I&m=MGEUCqG6f2VdOqZHSyX6LIUPo4REk4_ehZWPRWGSuQI&s=faytCFpyY97_7ti4xOHK34hphsVRE0YwSdvqU3DYl2k&e=
>> ---
>>  src/gallium/auxiliary/util/u_math.h | 4 ----
>>  1 file changed, 4 deletions(-)
>>
>> diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h
>> index 19c7343..ca6d0f1 100644
>> --- a/src/gallium/auxiliary/util/u_math.h
>> +++ b/src/gallium/auxiliary/util/u_math.h
>> @@ -561,14 +561,10 @@ util_last_bit(unsigned u)
>>  static INLINE unsigned
>>  util_last_bit_signed(int i)
>>  {
>> -#if defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 407) && !defined(__INTEL_COMPILER)
>> -   return 31 - __builtin_clrsb(i);
>> -#else
>>     if (i >= 0)
>>        return util_last_bit(i);
>>     else
>>        return util_last_bit(~(unsigned)i);
>> -#endif
>>  }
>>
>>  /* Destructively loop over all of the bits in a mask as in:
>>
>
> This looks like a gcc bug to me, right?
> If so it should probably be reported there.

Not clear, since no one but the original reporter has been able to reproduce it.


More information about the mesa-dev mailing list