Constant shifts: these are trivial in bit lane form.
For dynamic shifts make a barrel shifter using a succession of broadside multiplexors, each operated by a different bit of the shifting expression.
Here is the additional example for bit-blasting the barrel shifter: »Barrel Shifter, ML fragment