This allows shifting by a non-statically known amount without introducing a branch (to check for "overflow").