The ARM architecture provides some shift and rotation operations:

mnemonicoperationaction
LSL #nLogical Shift Left by n bits.Signed or unsigned multiplication by .
LSR #nLogical Shift Right by n bits.Unsigned division by .
ASR #nArithmetic Shift Right by n bits.Signed division by .
ROR #nRotate Right by n bits.Rotate bits around, and set Carry to LSB.
RRX #nRotate Right Extended by n bits.Rotate bits around through Carry.

Using Shift and Rotation Operations

One of the inputs of any instruction can be shifted or rotated. For example:

MOV R0, R0, LSL #1 ; R0 <= R0 * 2 

This can be used to make some operations more efficient. For example, consider the following two approaches to multiplication by 5:

MOV R1, #5 ; literals cannot be used with MUL
MUL R0, R1

vs

ADD R0, R0, LSL #2