From 1d67adbfbf2743a9ee7a08be2ce441710c95e5e8 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Thu, 2 Jun 2022 20:49:15 -0700 Subject: [PATCH] [RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC The immediate range check for CSImm12MulBy8 included some values covered by CSImm12MulBy4. I assume CSImm12MulBy4 had priority due to pattern order in the td file, but this makes the priority explicit in the predicate. --- llvm/lib/Target/RISCV/RISCVInstrInfoZb.td | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td index ea9f5f150925..33fe90973843 100644 --- a/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td +++ b/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td @@ -218,8 +218,9 @@ def CSImm12MulBy8 : PatLeaf<(imm), [{ if (!N->hasOneUse()) return false; int64_t C = N->getSExtValue(); - // Skip if C is simm12 or can be optimized by the PatLeaf AddiPair. - return !isInt<13>(C) && isInt<15>(C) && (C & 7) == 0; + // Skip if C is simm12 or can be optimized by the PatLeaf AddiPair or + // CSImm12MulBy4. + return !isInt<14>(C) && isInt<15>(C) && (C & 7) == 0; }]>; def SimmShiftRightBy2XForm : SDNodeXForm