From 15336823adbd41d401185c2fecf2c063f6a64f73 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Sat, 1 Feb 2025 09:36:31 -0800 Subject: [PATCH] [RISCV] Simplify MIPS CCMov patterns. NFC (#125318) We have ComplexPatterns that reduce 3 patterns to 1, by handling the ==/!= 0, imm, and register cases. These are used for XTHeadCondMove, Zicond, XVentanaCondOps, and our basic seteq/setne patterns. --- llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td index f53a887f62d4..9be424310d66 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td @@ -116,24 +116,13 @@ def MIPS_CCMOV : RVInstR4<0b11, 0b011, OPC_CUSTOM_0, (outs GPR:$rd), } let Predicates = [UseCCMovInsn] in { -def : Pat<(select (XLenVT (setne (XLenVT GPR:$rs2), (XLenVT 0))), +def : Pat<(select (riscv_setne (XLenVT GPR:$rs2)), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)), (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>; -def : Pat<(select (XLenVT (setne (XLenVT GPR:$x), (XLenVT simm12_plus1:$y))), - (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)), - (MIPS_CCMOV GPR:$rs1, (ADDI GPR:$x, (NegImm simm12_plus1:$y)), GPR:$rs3)>; -def : Pat<(select (XLenVT (setne (XLenVT GPR:$x), (XLenVT GPR:$y))), - (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)), - (MIPS_CCMOV GPR:$rs1, (XOR GPR:$x, GPR:$y), GPR:$rs3)>; -def : Pat<(select (XLenVT (seteq (XLenVT GPR:$rs2), (XLenVT 0))), +def : Pat<(select (riscv_seteq (XLenVT GPR:$rs2)), (XLenVT GPR:$rs3), (XLenVT GPR:$rs1)), (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>; -def : Pat<(select (XLenVT (seteq (XLenVT GPR:$x), (XLenVT simm12_plus1:$y))), - (XLenVT GPR:$rs3), (XLenVT GPR:$rs1)), - (MIPS_CCMOV GPR:$rs1, (ADDI GPR:$x, (NegImm simm12_plus1:$y)), GPR:$rs3)>; -def : Pat<(select (XLenVT (seteq (XLenVT GPR:$x), (XLenVT GPR:$y))), - (XLenVT GPR:$rs3), (XLenVT GPR:$rs1)), - (MIPS_CCMOV GPR:$rs1, (XOR GPR:$x, GPR:$y), GPR:$rs3)>; + def : Pat<(select (XLenVT GPR:$rs2), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)), (MIPS_CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>; } -- 2.11.4.GIT