>>161
テーブルを作っておいて
y = hoge_table[x];

gccだったら
y = 31 - __builtin_clz((x+1)|2&0x1f);
かなあ。