Representing `<=>` in IR

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.