[llvm] 1d67adb - [RISCV] Give CSImm12MulBy4 PatLeaf priority over CSImm12MulBy8. NFC

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 2 20:59:45 PDT 2022


Author: Craig Topper
Date: 2022-06-02T20:51:14-07:00
New Revision: 1d67adbfbf2743a9ee7a08be2ce441710c95e5e8

URL: https://github.com/llvm/llvm-project/commit/1d67adbfbf2743a9ee7a08be2ce441710c95e5e8
DIFF: https://github.com/llvm/llvm-project/commit/1d67adbfbf2743a9ee7a08be2ce441710c95e5e8.diff

LOG: [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.

Added: 
    

Modified: 
    llvm/lib/Target/RISCV/RISCVInstrInfoZb.td

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td b/llvm/lib/Target/RISCV/RISCVInstrInfoZb.td
index ea9f5f150925c..33fe909738432 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<imm, [{


        


More information about the llvm-commits mailing list