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

References

https://www.youtube.com/watch?v=-HNpim5x-IE