[llvm] [RISCV] Remove SEW operand for load/store and SEW-aware pseudos (PR #90396)
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 29 09:40:04 PDT 2024
================
@@ -917,56 +925,62 @@ class VPseudoILoadMask<VReg RetClass,
class VPseudoUSStoreNoMask<VReg StClass,
int EEW> :
Pseudo<(outs),
- (ins StClass:$rd, GPRMem:$rs1, AVL:$vl, ixlenimm:$sew), []>,
+ !if(!eq(EEW, 1),
+ (ins StClass:$rd, GPRMem:$rs1, AVL:$vl, ixlenimm:$sew),
+ (ins StClass:$rd, GPRMem:$rs1, AVL:$vl)), []>,
RISCVVPseudo,
RISCVVSE</*Masked*/0, /*Strided*/0, !logtwo(EEW), VLMul> {
let mayLoad = 0;
let mayStore = 1;
let hasSideEffects = 0;
let HasVLOp = 1;
- let HasSEWOp = 1;
+ // For mask store, EEW = 1.
----------------
topperc wrote:
I think "mask store" here means a store where the data value is a mask. Specifically the vsm instruction. The NoMask means that v0 isn't used to indicate which elements get stored, what may be referred to as a "masked store". `vsm` doesn't support masking off elements.
https://github.com/llvm/llvm-project/pull/90396
More information about the llvm-commits
mailing list