This may slow down a program if an instruction is executed but turned into a no-op, since another instruction may have executed during that slot. They are always a win when the cycle that they occupy would have been idle anyway. Trading a branch and move for a conditional move is usually a win. Longer sequences may not be. As noted above, the condition must be known before the processor's state is changed, and the earlier the better.
Conditional instructions are difficult for multiple conditions.
These instructions work well for avoiding single branches. However, the task is more difficult for two or more branch options since it requires additional instructions to compute the logical combination of the conditions. Conditional instructions may impose a speed penalty. Similar to conditional instructions, exceptions that should not occur are possible. They may cause performance to suffer a bit, but correct programs are not terminated.