pub fn shift_for_power_of_two<T: Shr<T, Output = T> + Copy + Eq + One + Zero + Not<Output = T> + BitOr<T, Output = T> + BitAnd<T, Output = T> + Sub<Output = T> + PartialOrd>( x: T, ) -> i32