Skip to content

Commit 30b9b28

Browse files
authored
[RISCV][GISel] Fallback to SelectionDAG for RVV tuple intrinsics. (#162133)
These intrinsics currently crash in translateCall.
1 parent 4be2975 commit 30b9b28

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25031,8 +25031,17 @@ bool RISCVTargetLowering::fallBackToDAGISel(const Instruction &Inst) const {
2503125031

2503225032
if (auto *II = dyn_cast<IntrinsicInst>(&Inst)) {
2503325033
// Mark RVV intrinsic as supported.
25034-
if (RISCVVIntrinsicsTable::getRISCVVIntrinsicInfo(II->getIntrinsicID()))
25034+
if (RISCVVIntrinsicsTable::getRISCVVIntrinsicInfo(II->getIntrinsicID())) {
25035+
// GISel doesn't support tuple types yet.
25036+
if (Inst.getType()->isRISCVVectorTupleTy())
25037+
return true;
25038+
25039+
for (unsigned i = 0; i < II->arg_size(); ++i)
25040+
if (II->getArgOperand(i)->getType()->isRISCVVectorTupleTy())
25041+
return true;
25042+
2503525043
return false;
25044+
}
2503625045
}
2503725046

2503825047
if (Inst.getType()->isScalableTy())

0 commit comments

Comments
 (0)