[llvm] [RISCV] Add register group overlap checks to the assembler for vector indexed segment load (PR #184963)
Pengcheng Wang via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 9 19:57:59 PDT 2026
================
@@ -3874,10 +3944,16 @@ bool RISCVAsmParser::validateInstruction(MCInst &Inst,
assert(VS2Idx >= 0 && "No vs2 operand?");
unsigned CheckEncoding =
RI->getEncodingValue(Inst.getOperand(VS2Idx).getReg());
+ unsigned NF = getNFforLXSEG(Opcode);
for (unsigned i = 0; i < Lmul; i++) {
- if ((DestEncoding + i) == CheckEncoding)
- return Error(Loc, "the destination vector register group cannot overlap"
- " the source vector register group");
+ if (NF == 1 && (DestEncoding + i) == CheckEncoding)
+ return Error(Loc, "the destination vector register group cannot"
+ " overlap the source vector register group");
+ }
+ for (unsigned i = 0; i < getNFforLXSEG(Opcode); i++) {
----------------
wangpc-pp wrote:
IIUC, you mean named operand?
https://github.com/llvm/llvm-project/pull/184963
More information about the llvm-commits
mailing list