From 50eb85c68bf4422c01c388168215724698484210 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Tue, 28 Jan 2025 10:38:56 -0800 Subject: [PATCH] [RISCV] Simplify MIPS CCMov patterns. NFC 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 281829e99cc56..a3bdb420745a9 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoXMips.td @@ -116,24 +116,13 @@ def 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)), (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)), - (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)), - (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)), (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)), - (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)), - (CCMOV GPR:$rs1, (XOR GPR:$x, GPR:$y), GPR:$rs3)>; + def : Pat<(select (XLenVT GPR:$rs2), (XLenVT GPR:$rs1), (XLenVT GPR:$rs3)), (CCMOV GPR:$rs1, GPR:$rs2, GPR:$rs3)>; }