Skip to content

Commit 6bb8d69

Browse files
committed
[X86] combineLoad - pull out repeated cast<MemSDNode> calls. NFC.
1 parent 72db578 commit 6bb8d69

File tree

1 file changed

+6
-7
lines changed

1 file changed

+6
-7
lines changed

llvm/lib/Target/X86/X86ISelLowering.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49959,18 +49959,17 @@ static SDValue combineLoad(SDNode *N, SelectionDAG &DAG,
4995949959
SDValue Ptr = Ld->getBasePtr();
4996049960
SDValue Chain = Ld->getChain();
4996149961
for (SDNode *User : Chain->uses()) {
49962-
if (User != N &&
49962+
auto *UserLd = dyn_cast<MemSDNode>(User);
49963+
if (User != N && UserLd &&
4996349964
(User->getOpcode() == X86ISD::SUBV_BROADCAST_LOAD ||
4996449965
User->getOpcode() == X86ISD::VBROADCAST_LOAD ||
4996549966
ISD::isNormalLoad(User)) &&
49966-
cast<MemSDNode>(User)->getChain() == Chain &&
49967-
!User->hasAnyUseOfValue(1) &&
49967+
UserLd->getChain() == Chain && !User->hasAnyUseOfValue(1) &&
4996849968
User->getValueSizeInBits(0).getFixedValue() >
4996949969
RegVT.getFixedSizeInBits()) {
4997049970
if (User->getOpcode() == X86ISD::SUBV_BROADCAST_LOAD &&
49971-
cast<MemSDNode>(User)->getBasePtr() == Ptr &&
49972-
cast<MemSDNode>(User)->getMemoryVT().getSizeInBits() ==
49973-
MemVT.getSizeInBits()) {
49971+
UserLd->getBasePtr() == Ptr &&
49972+
UserLd->getMemoryVT().getSizeInBits() == MemVT.getSizeInBits()) {
4997449973
SDValue Extract = extractSubVector(SDValue(User, 0), 0, DAG, SDLoc(N),
4997549974
RegVT.getSizeInBits());
4997649975
Extract = DAG.getBitcast(RegVT, Extract);
@@ -49989,7 +49988,7 @@ static SDValue combineLoad(SDNode *N, SelectionDAG &DAG,
4998949988
// See if we are loading a constant that matches in the lower
4999049989
// bits of a longer constant (but from a different constant pool ptr).
4999149990
EVT UserVT = User->getValueType(0);
49992-
SDValue UserPtr = cast<MemSDNode>(User)->getBasePtr();
49991+
SDValue UserPtr = UserLd->getBasePtr();
4999349992
const Constant *LdC = getTargetConstantFromBasePtr(Ptr);
4999449993
const Constant *UserC = getTargetConstantFromBasePtr(UserPtr);
4999549994
if (LdC && UserC && UserPtr != Ptr) {

0 commit comments

Comments
 (0)