Unless you want to shift a byte left by a variable amount, and zero is the correct answer if you're shifting by eight. Then you either need to hope that your platform just uses a shift-left instruction (giving you zero), or you have to add a test (consuming expensive clock ticks).