They are both the same 4 instructions in my ISA–given a reason pattern matcher
as a code generator.
CMP Rt,Ra,Rb
SLA Rr,Rt,<1:LT>
SLL Rt,Rt,<1:GT>
OR Rr,Rr,Rt
only 1 of the LT and GT flags are set in CMP
SLA gives a result of {-1,0}
SLL gives a result of {0,1}
OR whacks the results together
An ISA with signed and unsigned integer SET instructions could do this in 3 instructions
SETALT Rt,Ra,Rb
SETUGT Rd,Ra,Rb
OR Rt,Rt,Rd
Don’t think it matters much: but both of these imbodiments prefer it written in the form::
( a < b ) | ( a > b )
As it gives ISAs with easy means to {-1,0} and {0,+1} SETs a more direct path to the result.