What's the “corresponding thing” to branch prediction for conditional moves? Is it just speculative execution?
In theory a sophisticated CPU could convert predictable CMOVs to branches (and some non-diverging unpredictable branches to CMOVs), but IIRC Intel has, since Spectre, guaranteed that CMOV itself never triggers speculation.
Reordering may allow executing independent instructions which follow the cmov, but anything depending on the cmov will have to wait.
It’s one of the reasons compilers avoid cmov relatively aggressively, they can cause pipeline stalls which don’t affect branches.