#include "math.h" inline uint32_t log2(const uint32_t x) { uint32_t y; // Get the highest set bit asm("\tbsr %1, %0\n" : "=r"(y) : "r"(x)); return y; }