>The speed hierarchy of operations is:
>
> comparisons
> (u)int add, subtract, bitops, shift
> floating point add, sub (separate unit!)
> ...
> (u)int division, remainder
This can't be right. A comparison necessitates either a branch or a cmov, and there's no way that either of those is faster than a basic ALU operation.