Worth noting that division (integer, fp, and simd) has gotten much cheaper in the last decade. Division is partially pipelined on common microarchitectures now (capable of delivering a result every 2-4 cycles) and have greatly reduced latency from ~30-80 cycles down to ~10-20 cycles.
This improvement is sufficient to tip the balance toward favoring division in some algorithms where historically programmers went out of their way to avoid it.
Comments
Worth noting that division (integer, fp, and simd) has gotten much cheaper in the last decade. Division is partially pipelined on common microarchitectures now (capable of delivering a result every 2-4 cycles) and have greatly reduced latency from ~30-80 cycles down to ~10-20 cycles.
This improvement is sufficient to tip the balance toward favoring division in some algorithms where historically programmers went out of their way to avoid it.