Skip to content

Commit 5a95ec6

Browse files
authored
[RISCV] Add riscv_vlm/vsm to RISCVTargetLowering::getTgtMemIntrinsic. (#148265)
1 parent 7946980 commit 5a95ec6

File tree

2 files changed

+9
-5
lines changed

2 files changed

+9
-5
lines changed

llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,8 +2268,7 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
22682268
MachineSDNode *Load =
22692269
CurDAG->getMachineNode(P->Pseudo, DL, Node->getVTList(), Operands);
22702270

2271-
if (auto *MemOp = dyn_cast<MemSDNode>(Node))
2272-
CurDAG->setNodeMemRefs(Load, {MemOp->getMemOperand()});
2271+
CurDAG->setNodeMemRefs(Load, {cast<MemSDNode>(Node)->getMemOperand()});
22732272

22742273
ReplaceNode(Node, Load);
22752274
return;
@@ -2487,8 +2486,7 @@ void RISCVDAGToDAGISel::Select(SDNode *Node) {
24872486
IsMasked, IsStrided, Log2SEW, static_cast<unsigned>(LMUL));
24882487
MachineSDNode *Store =
24892488
CurDAG->getMachineNode(P->Pseudo, DL, Node->getVTList(), Operands);
2490-
if (auto *MemOp = dyn_cast<MemSDNode>(Node))
2491-
CurDAG->setNodeMemRefs(Store, {MemOp->getMemOperand()});
2489+
CurDAG->setNodeMemRefs(Store, {cast<MemSDNode>(Node)->getMemOperand()});
24922490

24932491
ReplaceNode(Node, Store);
24942492
return;

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1772,7 +1772,7 @@ bool RISCVTargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info,
17721772
->getZExtValue());
17731773
Info.align = DL.getABITypeAlign(MemTy);
17741774
} else {
1775-
Info.align = Align(DL.getTypeSizeInBits(MemTy->getScalarType()) / 8);
1775+
Info.align = Align(DL.getTypeStoreSize(MemTy->getScalarType()));
17761776
}
17771777
Info.size = MemoryLocation::UnknownSize;
17781778
Info.flags |=
@@ -1824,6 +1824,11 @@ bool RISCVTargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info,
18241824
return SetRVVLoadStoreInfo(/*PtrOp*/ I.arg_size() - 3,
18251825
/*IsStore*/ true,
18261826
/*IsUnitStrided*/ false, /*UsePtrVal*/ true);
1827+
case Intrinsic::riscv_vlm:
1828+
return SetRVVLoadStoreInfo(/*PtrOp*/ 0,
1829+
/*IsStore*/ false,
1830+
/*IsUnitStrided*/ true,
1831+
/*UsePtrVal*/ true);
18271832
case Intrinsic::riscv_vle:
18281833
case Intrinsic::riscv_vle_mask:
18291834
case Intrinsic::riscv_vleff:
@@ -1832,6 +1837,7 @@ bool RISCVTargetLowering::getTgtMemIntrinsic(IntrinsicInfo &Info,
18321837
/*IsStore*/ false,
18331838
/*IsUnitStrided*/ true,
18341839
/*UsePtrVal*/ true);
1840+
case Intrinsic::riscv_vsm:
18351841
case Intrinsic::riscv_vse:
18361842
case Intrinsic::riscv_vse_mask:
18371843
return SetRVVLoadStoreInfo(/*PtrOp*/ 1,

0 commit comments

Comments
 (0)