4 ms·
Unless I've understood you poorly, this is confused. The issue with CMOV is primarily that it's a three operand instruction. If it was a two-instruction operat
by Veedrac 7y ago
Unless I've understood you poorly, this is confused.
The issue with CMOV is primarily that it's a three operand instruction. If it was a two-instruction operation, it would just be arithmetic, and nobody would care.
A minor, secondary issue is that conditional moves have a data dependency on both of the source operands, unlike conditional branch and move, which means that they are often slower than a predictable branch and move on a fast processor. However, this doesn't matter all that much, because they're optional, so just don't use them when they aren't a good fit.
- ncmncm 7y agoIt probably is confused.