From f62e1f41b4d6047e72222aebbb0b55a508269b0c Mon Sep 17 00:00:00 2001 From: Brian Paul Date: Thu, 2 Jun 2011 08:43:07 -0600 Subject: [PATCH] util: faster logbase2 --- src/gallium/auxiliary/util/u_math.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/gallium/auxiliary/util/u_math.h b/src/gallium/auxiliary/util/u_math.h index 2ecade5f7e4..65a99fcb394 100644 --- a/src/gallium/auxiliary/util/u_math.h +++ b/src/gallium/auxiliary/util/u_math.h @@ -477,10 +477,13 @@ float_to_byte_tex(float f) static INLINE unsigned util_logbase2(unsigned n) { - unsigned log2 = 0; - while (n >>= 1) - ++log2; - return log2; + unsigned pos = 0; + if (n >= 1<<16) { n >>= 16; pos += 16; } + if (n >= 1<< 8) { n >>= 8; pos += 8; } + if (n >= 1<< 4) { n >>= 4; pos += 4; } + if (n >= 1<< 2) { n >>= 2; pos += 2; } + if (n >= 1<< 1) { pos += 1; } + return pos; } -- 2.30.2