What pattern should I use to get a CMOV?

NightStrike nightstrike@gmail.com
Sat Nov 14 16:04:00 GMT 2015


On 11/14/15, Jeffrey Walton <noloader@gmail.com> 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



More information about the Gcc-help mailing list