Leo shift operations.
These are arithmetic shift left and shift right operations, in regular and wrapped variants.
The left operand can be any signed or unsigned integer type;
the right operand can only be
For the regular shift left and shift right operations, it is an error if the right operand is larger than the number of bits of the left operand's type.
For the wrapped shift left and shift right operations,
instead of getting an error when the right operand is too large,
only the low
Arithmetic shift is best thought of as multiplication (left shift) or division (right shift) by a power of two. The right operand is the power of two. In the case of division, fractions are rounded towards negative infinity.
For example
For regular left shift, if the result of multiplying by the power of two
is not representable in the return type, it is an error.
For example,
For wrapped left shift, if the result of multiplying by the power of two
is not representable in the return type, then the low