[PATCH] D121887: [RISCV] Teach VSETVLI insertion that it doesn't need to insert vsetvli for vlm.v and vsm.v in some cases.

Jianjian Guan via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 17 01:12:24 PDT 2022


jacquesguan created this revision.
jacquesguan added reviewers: craig.topper, frasercrmck, rogfer01.
Herald added subscribers: s, VincentWu, luke957, vkmr, evandro, luismarques, apazos, sameer.abuasal, s.egerton, Jim, benna, psnobl, jocewei, PkmX, the_o, brucehoult, MartinMosbeck, edward-jones, zzheng, jrtc27, kito-cheng, niosHD, sabuasal, simoncook, johnrusso, rbar, asb, hiraditya, arichardson.
Herald added a project: All.
jacquesguan requested review of this revision.
Herald added subscribers: llvm-commits, pcwang-thead, eopXD, MaskRay.
Herald added a project: LLVM.

Unit-stride mask load and store instructions also have EEW=8. So add them to the switch case to avoid redundant VSETVLI.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D121887

Files:
  llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp


Index: llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
===================================================================
--- llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
+++ llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp
@@ -679,6 +679,20 @@
   switch (MI.getOpcode()) {
   default:
     return false;
+  case RISCV::PseudoVSM_V_B1:
+  case RISCV::PseudoVSM_V_B2:
+  case RISCV::PseudoVSM_V_B4:
+  case RISCV::PseudoVSM_V_B8:
+  case RISCV::PseudoVSM_V_B16:
+  case RISCV::PseudoVSM_V_B32:
+  case RISCV::PseudoVSM_V_B64:
+  case RISCV::PseudoVLM_V_B1:
+  case RISCV::PseudoVLM_V_B2:
+  case RISCV::PseudoVLM_V_B4:
+  case RISCV::PseudoVLM_V_B8:
+  case RISCV::PseudoVLM_V_B16:
+  case RISCV::PseudoVLM_V_B32:
+  case RISCV::PseudoVLM_V_B64:
   case RISCV::PseudoVLE8_V_M1:
   case RISCV::PseudoVLE8_V_M1_MASK:
   case RISCV::PseudoVLE8_V_M2:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D121887.416087.patch
Type: text/x-patch
Size: 840 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220317/10ebecec/attachment.bin>


More information about the llvm-commits mailing list