[llvm] [GISEL][RISCV] RegBank Scalable Vector Load/Store (PR #99932)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 22 14:54:40 PDT 2024


================
@@ -355,10 +355,20 @@ RISCVRegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
   switch (Opc) {
   case TargetOpcode::G_LOAD: {
     LLT Ty = MRI.getType(MI.getOperand(0).getReg());
-    OpdsMapping[0] = GPRValueMapping;
-    OpdsMapping[1] = GPRValueMapping;
+    TypeSize Size = Ty.getSizeInBits();
+    if (Ty.isVector()) {
+      OpdsMapping[0] = getVRBValueMapping(Size.getKnownMinValue());
+      OpdsMapping[1] = getVRBValueMapping(Size.getKnownMinValue());
+    } else if (isPreISelGenericFloatingPointOpcode(Opc)) {
----------------
topperc wrote:

`isPreISelGenericFloatingPointOpcode(Opc)` will never be true here since `Opc` here will always be `G_LOAD`.

https://github.com/llvm/llvm-project/pull/99932


More information about the llvm-commits mailing list