On 11/14/15, Jeffrey Walton <noloader@xxxxxxxxx> wrote: > I'm trying to ensure I get a conditional move if its available during > a saturating subtract operation. The saturating subtract clamps the > min value at 0. > > Here's what it looks like in high level code: > > // Perform a-b, clamp at 0 > return (a > b) ? (a - b) : 0; > > But based on this bug report: > http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22568, I can't tell if > that's what I should be using. > > What pattern should I use to get a CMOV? > > Thanks in advance. This should help. https://gcc.gnu.org/ml/gcc-help/2014-10/msg00112.html And look apt halfway down here at the answer from Jorge: http://stackoverflow.com/questions/427477/fastest-way-to-clamp-a-real-fixed-floating-point-value