A hardware device that can shift or rotate a data word by any number of bits in a single operation. It is implemented like a multiplexor, each output can be connected to any input depending on the shift distance.