Several transforms:
- If known Y < 0:
- slt -> ult: https://alive2.llvm.org/ce/z/unpsxu
- sle -> ule: https://alive2.llvm.org/ce/z/a5cpmr
- sgt -> ugt: https://alive2.llvm.org/ce/z/qgsgya
- sge -> uge: https://alive2.llvm.org/ce/z/ek_3ls
- If known Y > 0:
- (X & PosY) s> X --> X s< 0
- (X & PosY) s> X --> X s< 0
- If known X < 0:
- (NegX & Y) s> NegX --> Y s>= 0
- (NegX & Y) s<= NegX --> Y s< 0