use core/bit-macros.h