Skip to content

Commit 77f1746

Browse files
jacquesguangithub-actions[bot]
authored andcommitted
Automerge: [RISCV][GISel] Legalize G_INSERT_VECTOR_ELT for supported vector types (#159708)
2 parents 589bfd5 + 705b6cf commit 77f1746

File tree

4 files changed

+3487
-2
lines changed

4 files changed

+3487
-2
lines changed

llvm/lib/Target/RISCV/GISel/RISCVLegalizerInfo.cpp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -717,6 +717,18 @@ RISCVLegalizerInfo::RISCVLegalizerInfo(const RISCVSubtarget &ST)
717717
.clampScalar(0, sXLen, sXLen)
718718
.lower();
719719

720+
LegalityPredicate InsertVectorEltPred = [=](const LegalityQuery &Query) {
721+
LLT VecTy = Query.Types[0];
722+
LLT EltTy = Query.Types[1];
723+
return VecTy.getElementType() == EltTy;
724+
};
725+
726+
getActionDefinitionsBuilder(G_INSERT_VECTOR_ELT)
727+
.legalIf(all(typeIsLegalIntOrFPVec(0, IntOrFPVecTys, ST),
728+
InsertVectorEltPred, typeIs(2, sXLen)))
729+
.legalIf(all(typeIsLegalBoolVec(0, BoolVecTys, ST), InsertVectorEltPred,
730+
typeIs(2, sXLen)));
731+
720732
getLegacyLegalizerInfo().computeTables();
721733
verify(*ST.getInstrInfo());
722734
}

llvm/test/CodeGen/RISCV/GlobalISel/legalizer-info-validation.mir

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -689,8 +689,8 @@
689689
# DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
690690
# DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
691691
# DEBUG-NEXT: G_INSERT_VECTOR_ELT (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
692-
# DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
693-
# DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined
692+
# DEBUG-NEXT: .. type index coverage check SKIPPED: user-defined predicate detected
693+
# DEBUG-NEXT: .. imm index coverage check SKIPPED: user-defined predicate detected
694694
# DEBUG-NEXT: G_EXTRACT_VECTOR_ELT (opcode {{[0-9]+}}): 3 type indices, 0 imm indices
695695
# DEBUG-NEXT: .. type index coverage check SKIPPED: no rules defined
696696
# DEBUG-NEXT: .. imm index coverage check SKIPPED: no rules defined

0 commit comments

Comments
 (0)