@@ -, +, @@ --- configure.ac | 1 + scons/gallium.py | 2 ++ src/gallium/auxiliary/util/u_math.h | 2 +- 3 files changed, 4 insertions(+), 1 deletion(-) --- a/configure.ac +++ a/configure.ac @@ -171,6 +171,7 @@ fi dnl Check for compiler builtins AX_GCC_BUILTIN([__builtin_bswap32]) AX_GCC_BUILTIN([__builtin_bswap64]) +AX_GCC_BUILTIN([__builtin_clrsb]) AX_GCC_BUILTIN([__builtin_clz]) AX_GCC_BUILTIN([__builtin_clzll]) AX_GCC_BUILTIN([__builtin_ctz]) --- a/scons/gallium.py +++ a/scons/gallium.py @@ -607,6 +607,8 @@ def generate(env): ] if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.5'): cppdefines += ['HAVE___BUILTIN_UNREACHABLE'] + if distutils.version.LooseVersion(ccversion) >= distutils.version.LooseVersion('4.7'): + cppdefines += ['HAVE___BUILTIN_CLRSB'] # Load tools env.Tool('lex') --- a/src/gallium/auxiliary/util/u_math.h +++ a/src/gallium/auxiliary/util/u_math.h @@ -561,7 +561,7 @@ 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) +#ifdef HAVE___BUILTIN_CLRSB return 31 - __builtin_clrsb(i); #else if (i >= 0) --