[PATCH] D94229: [RISCV] Implement vlseg intrinsics.

Roger Ferrer Ibanez via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 5 14:37:04 PST 2021


rogfer01 added inline comments.
Herald added subscribers: StephenFan, vkmr.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoVPseudos.td:994
+class VPseudoUSSegLoadMask<VReg RetClass, bits<11> EEW>:
+      Pseudo<(outs GetVRegNoV0<RetClass>.R:$rd),
+             (ins GetVRegNoV0<RetClass>.R:$merge, GPR:$rs1,
----------------
Hi Kai, sorry for digging up this now: it didn't occur to me before.

I understand `GetVRegNoV0` receives as `RetClass` a tuple register class. However `GetVRegNoV0` does not seem to handle these register classes and returns the same register class it was given. So I think we could end doing a register allocation like this

```
vsetvli a1, a1, e32,m2,ta,mu
vlseg2e32.v v0, (a0), v0.t
```

which I would say is invalid.

What do you think? Thanks!


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D94229/new/

https://reviews.llvm.org/D94229



More information about the llvm-commits mailing list