add cldivrem_shifting as a more efficient algorithm