diff options
-rw-r--r-- | src/mesa/main/imports.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mesa/main/imports.c b/src/mesa/main/imports.c index 46ffb929b6c..c9e00cf7528 100644 --- a/src/mesa/main/imports.c +++ b/src/mesa/main/imports.c @@ -629,11 +629,15 @@ _mesa_ffsll(int64_t val) unsigned int _mesa_bitcount(unsigned int n) { +#if defined(__GNUC__) + return __builtin_popcount(n); +#else unsigned int bits; for (bits = 0; n > 0; n = n >> 1) { bits += (n & 1); } return bits; +#endif } |