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

Ilia Mirkin imirkin at alum.mit.edu
Mon Feb 2 17:30:19 PST 2015


Reviewed-by: Ilia Mirkin <imirkin at alum.mit.edu>

Oh well. Nothing requiring high throughput uses this afaik... constant
folding in nouveau (for the relevant glsl instruction), that's
probably about it. Would be nice to clarify the circumstances, but...
wtvr. Cc 10.4 stable too?

On Mon, Feb 2, 2015 at 8:28 PM, Matt Turner <mattst88 at gmail.com> wrote:
> Unclear circumstances lead to undefined symbols on x86.
>
> Bugzilla: https://bugs.gentoo.org/show_bug.cgi?id=536916
> ---
>  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:
> --
> 2.0.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list