- Branch predictors
- Making branches predictable is beneficial
- cpp compilers will avoid unpredictable branches and replace it with operations regardless
- Divisions are slower, dividing with constants or predictable values is always faster.
- If the divisor is predictable, then the div operation is modified to be a bunch of multiplies and adds.