Marc Glisse wrote: > The question is whether, having computed c=a/b, it is cheaper to test a<b or > c!=0. > I think it is usually the second one, but not for all types on all targets. > Although since > you mention VRP, it is easier to do further optimizations using the > information a<b.
No, a<b is always better. Division does have high latency and low throughput on all modern cores, so rather than having to wait until the division finishes, you can execute whatever depends on the comparison many cycles earlier. Generally you want to avoid division as much as possible and when that fails reduce any dependencies on the result of divisions. Wilco