Emit conditonal move: cmov vs movMMcc

Segher Boessenkool segher@kernel.crashing.org
Tue May 12 12:21:02 GMT 2020


Hi!

On Mon, May 11, 2020 at 02:38:10PM +0100, Maxim Blinov via Gcc-help wrote:
> So i was playing around with adding an intel-like cmov insn to a gcc
> 7.5 based backend. syntax is
> cmov %a,%b,%c,%d
> 
> semantics is
> a = (%b ? %c : %d)
> 
> Now I am aware of two predefined rtl insns for this purpose (from optabs.def):
> 
> mov$acc
> cmov$a6
> 
> my question is, what are the differences, and in what context is one
> selected over the other?

cmov<mode>6 is never generated, but mov<mode>cc is.  The former isn't
documented either, but the latter is.

It looks like cmov<nmode>6 is just historical?  Or even was *never* used?


Segher


More information about the Gcc-help mailing list