this can be changed on-the-fly must be set to 0 before setting div=1
struct SHIFT_W<'a, REG> { /* private fields */ }