diff options
-rw-r--r-- | src/vppinfra/clib.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/vppinfra/clib.h b/src/vppinfra/clib.h index 22377c61440..05af8fe7168 100644 --- a/src/vppinfra/clib.h +++ b/src/vppinfra/clib.h @@ -159,6 +159,16 @@ #if defined (count_leading_zeros) always_inline uword +clear_lowest_set_bit (uword x) +{ +#ifdef __BMI2__ + return _blsr_u64 (x); +#else + return x ^ (1ULL << count_trailing_zeros (x)); +#endif +} + +always_inline uword min_log2 (uword x) { uword n; |