intmath: add faster clz support

This commit is contained in:
Ganesh Ajjanagadde 2017-02-22 12:53:33 -05:00 committed by Vittorio Giovara
parent 5ff3b5cafc
commit 7bfda7d157
1 changed files with 19 additions and 0 deletions

View File

@ -44,6 +44,10 @@
# endif
#endif /* ff_log2 */
#ifndef ff_clz
# define ff_clz(v) __builtin_clz(v)
#endif /* ff_clz */
#endif /* AV_GCC_VERSION_AT_LEAST(3,4) */
extern const uint8_t ff_log2_tab[256];
@ -132,6 +136,21 @@ static av_always_inline av_const int ff_ctz_c(int v)
}
#endif
#ifndef ff_clz
#define ff_clz ff_clz_c
static av_always_inline av_const unsigned ff_clz_c(unsigned x)
{
unsigned i = sizeof(x) * 8;
while (x) {
x >>= 1;
i--;
}
return i;
}
#endif
/**
* Trailing zero bit count.
*