diff options
| author | Alex Bradbury <asb@lowrisc.org> | 2018-11-09 14:47:36 +0000 | 
|---|---|---|
| committer | Alex Bradbury <asb@lowrisc.org> | 2018-11-09 14:47:36 +0000 | 
| commit | 1cc2d0b9fb9fc966fab5fb0575479aa888b2ed57 (patch) | |
| tree | 3cc970578ee0cbf2c068f2215465bf9e92217cf8 /llvm/lib/Target/RISCV | |
| parent | a9da1de5f46691284d2bb7973e44c6b34b8c2bc5 (diff) | |
| download | bcm5719-llvm-1cc2d0b9fb9fc966fab5fb0575479aa888b2ed57.tar.gz bcm5719-llvm-1cc2d0b9fb9fc966fab5fb0575479aa888b2ed57.zip | |
[RISCV] Avoid unnecessary XOR for seteq/setne 0
Differential Revision: https://reviews.llvm.org/D53492
Patch by James Clarke.
llvm-svn: 346497
Diffstat (limited to 'llvm/lib/Target/RISCV')
| -rw-r--r-- | llvm/lib/Target/RISCV/RISCVInstrInfo.td | 2 | 
1 files changed, 2 insertions, 0 deletions
| diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.td b/llvm/lib/Target/RISCV/RISCVInstrInfo.td index 631a1f7deca..1150af5a111 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfo.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.td @@ -685,7 +685,9 @@ def : PatGprSimm12<setult, SLTIU>;  // Define pattern expansions for setcc operations that aren't directly  // handled by a RISC-V instruction. +def : Pat<(seteq GPR:$rs1, 0), (SLTIU GPR:$rs1, 1)>;  def : Pat<(seteq GPR:$rs1, GPR:$rs2), (SLTIU (XOR GPR:$rs1, GPR:$rs2), 1)>; +def : Pat<(setne GPR:$rs1, 0), (SLTU X0, GPR:$rs1)>;  def : Pat<(setne GPR:$rs1, GPR:$rs2), (SLTU X0, (XOR GPR:$rs1, GPR:$rs2))>;  def : Pat<(setugt GPR:$rs1, GPR:$rs2), (SLTU GPR:$rs2, GPR:$rs1)>;  def : Pat<(setuge GPR:$rs1, GPR:$rs2), (XORI (SLTU GPR:$rs1, GPR:$rs2), 1)>; | 

