Which is faster: x<<1 or x<<10?
Potentially depends on the CPU.
However, all modern CPUs (x86, ARM) use a "barrel shifter" -- a hardware module specifically designed to perform arbitrary shifts in constant time.
So the bottom line is... no. No difference.
Some embedded processors only have a "shift-by-one" instruction. On such processors, the compiler would change x << 3
into ((x << 1) << 1) << 1
.
I think the Motorola MC68HCxx was one of the more popular families with this limitation. Fortunately, such architectures are now quite rare, most now include a barrel shifter with a variable shift size.
The Intel 8051, which has many modern derivatives, also cannot shift an arbitrary number of bits.