Integer Multiply Optimization

On many architectures, integer multiply instructions are slower than other instructions such as integer add and shift, and multiply expressions with power-of-two constant multiplicands and other bit patterns can be replaced with faster instructions.

Example:

The integer multiply expression in the code fragment below can be replaced with an shift expression.

int f (int i)
{
  return i * 4;
}
  

Below is the code fragment after the multiply expression has been translated to a shift expression.

int f (int i)
{
  return i << 2;
}