Browse Source

intmath: add faster clz support

tags/n4.0
Ganesh Ajjanagadde Vittorio Giovara 9 years ago
parent
commit
7bfda7d157
1 changed files with 19 additions and 0 deletions
  1. +19
    -0
      libavutil/intmath.h

+ 19
- 0
libavutil/intmath.h 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.
*


Loading…
Cancel
Save