It is a win if the branch cannot be effectively predicted, i.e. if the
outcome is essentially random, as may occur with data-dependent
conditionals. I've seen a doubling of performance on one workload using
a predicated instruction instead of a branch on newer Xeons in such a case.
I suspect that if branch prediction fails often, the data dependency
created by the cmov, etc. is less expensive than the pipeline flush
required by mispredicts..
--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@nospamshaw.ca
Home Page: http://www.roberthancock.com/
-