Lines Matching defs:LSNode1
15137 // Try to combine the memory loads/stores LSNode1 and LSNode2
15139 static SDValue tryMemPairCombine(SelectionDAG &DAG, LSBaseSDNode *LSNode1,
15143 SmallVector<const SDNode *, 8> Worklist = {LSNode1, LSNode2};
15145 if (SDNode::hasPredecessorHelper(LSNode1, Visited, Worklist) ||
15154 EVT MemVT = LSNode1->getMemoryVT();
15156 MachineMemOperand *MMO = LSNode1->getMemOperand();
15160 if (LSNode1->getOpcode() == ISD::LOAD) {
15161 auto Ext = cast<LoadSDNode>(LSNode1)->getExtensionType();
15169 Opcode, SDLoc(LSNode1), DAG.getVTList({XLenVT, XLenVT, MVT::Other}),
15170 {LSNode1->getChain(), BasePtr,
15171 DAG.getConstant(Imm, SDLoc(LSNode1), XLenVT)},
15175 DAG.getMergeValues({Res.getValue(0), Res.getValue(2)}, SDLoc(LSNode1));
15185 Opcode, SDLoc(LSNode1), DAG.getVTList(MVT::Other),
15186 {LSNode1->getChain(), LSNode1->getOperand(1), LSNode2->getOperand(1),
15187 BasePtr, DAG.getConstant(Imm, SDLoc(LSNode1), XLenVT)},
15207 LSBaseSDNode *LSNode1 = cast<LSBaseSDNode>(N);
15208 EVT MemVT = LSNode1->getMemoryVT();
15209 unsigned OpNum = LSNode1->getOpcode() == ISD::LOAD ? 1 : 2;
15212 if (!LSNode1->isSimple() || LSNode1->isIndexed())
15223 auto [Base1, Offset1] = ExtractBaseAndOffset(LSNode1->getOperand(OpNum));
15237 // Check if LSNode1 and LSNode2 have the same type and extension.
15238 if (LSNode1->getOpcode() == ISD::LOAD)
15240 cast<LoadSDNode>(LSNode1)->getExtensionType())
15243 if (LSNode1->getMemoryVT() != LSNode2->getMemoryVT())
15269 tryMemPairCombine(DAG, LSNode1, LSNode2, Base1, Offset1))