Lines Matching defs:Ld
2788 auto *Ld = cast<LoadSDNode>(Op.getNode());
2790 Ld->getValueSizeInBits(0) == 128 && Ld->getAlign() < Align(16))
2808 auto *Ld = cast<LoadSDNode>(Op.getNode());
2809 return !Ld->isVolatile() ||
2810 Ld->getValueSizeInBits(0) == EltVT.getScalarSizeInBits();
7073 static bool findEltLoadSrc(SDValue Elt, LoadSDNode *&Ld, int64_t &ByteOffset) {
7078 Ld = BaseLd;
7087 return findEltLoadSrc(Elt.getOperand(0), Ld, ByteOffset);
7091 if ((Amt % 8) == 0 && findEltLoadSrc(Elt.getOperand(0), Ld, ByteOffset)) {
7103 findEltLoadSrc(Src, Ld, ByteOffset)) {
7199 LoadSDNode *Ld = Loads[EltIdx];
7204 Loads[BaseIdx] == Ld && ByteOffsets[BaseIdx] == 0);
7206 return DAG.areNonVolatileConsecutiveLoads(Ld, Base, BaseSizeInBytes,
7519 SDValue Ld;
7525 Ld = Sequence[0];
7566 if (!Ld || (NumElts - NumUndefElts) <= 1) {
7616 // If we are moving a scalar into a vector (Ld must be set and all elements
7621 if (!Ld || NumElts - NumUndefElts != 1)
7623 unsigned ScalarSize = Ld.getValueSizeInBits();
7629 (Ld.getOpcode() == ISD::Constant || Ld.getOpcode() == ISD::ConstantFP);
7630 bool IsLoad = ISD::isNormalLoad(Ld.getNode());
7637 if (!ConstSplatVal && !IsLoad && !BVOp->isOnlyUserOf(Ld.getNode()))
7640 unsigned ScalarSize = Ld.getValueSizeInBits();
7657 EVT CVT = Ld.getValueType();
7669 if (ConstantSDNode *CI = dyn_cast<ConstantSDNode>(Ld))
7671 else if (ConstantFPSDNode *CF = dyn_cast<ConstantFPSDNode>(Ld))
7692 return DAG.getNode(X86ISD::VBROADCAST, dl, VT, Ld);
7699 if (!Ld->hasNUsesOfValue(NumElts - NumUndefElts, 0))
7704 auto *LN = cast<LoadSDNode>(Ld);
7716 if (Subtarget.hasInt256() && Ld.getValueType().isInteger() &&
7718 auto *LN = cast<LoadSDNode>(Ld);
7729 return DAG.getNode(X86ISD::VBROADCAST, dl, VT, Ld);
9164 SDValue Ld = DAG.getLoad(VT, dl, DAG.getEntryNode(), LegalDAGConstVec, MPI);
9168 return DAG.getNode(ISD::INSERT_VECTOR_ELT, dl, VT, Ld, VarElt, InsIndex);
9179 return DAG.getVectorShuffle(VT, dl, Ld, S2V, ShuffleMask);
12854 LoadSDNode *Ld = cast<LoadSDNode>(V);
12855 SDValue BaseAddr = Ld->getOperand(1);
12867 SDValue Ops[] = {Ld->getChain(), NewAddr};
12871 Ld->getMemOperand(), Offset, SVT.getStoreSize()));
12872 DAG.makeEquivalentMemoryOrdering(Ld, V);
12876 V = DAG.getLoad(SVT, DL, Ld->getChain(), NewAddr,
12878 Ld->getMemOperand(), Offset, SVT.getStoreSize()));
12879 DAG.makeEquivalentMemoryOrdering(Ld, V);
15247 auto *Ld = cast<LoadSDNode>(peekThroughOneUseBitcasts(V1));
15249 VT, MemVT, Ld, Ofs, DAG))
25259 LoadSDNode *Ld = cast<LoadSDNode>(Op.getNode());
25260 SDLoc dl(Ld);
25264 assert(EVT(RegVT) == Ld->getMemoryVT() && "Expected non-extending load");
25269 SDValue NewLd = DAG.getLoad(MVT::i8, dl, Ld->getChain(), Ld->getBasePtr(),
25270 Ld->getPointerInfo(), Ld->getOriginalAlign(),
25271 Ld->getMemOperand()->getFlags());
34318 SDValue Ld = DAG.getLoad(MVT::v2i64, dl, Node->getChain(),
34320 SDValue ResL = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Ld,
34322 SDValue ResH = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Ld,
34326 Results.push_back(Ld.getValue(1));
34337 SDValue Ld = DAG.getMemIntrinsicNode(X86ISD::VZEXT_LOAD, dl, Tys, Ops,
34340 SDValue Res = DAG.getNode(ISD::EXTRACT_VECTOR_ELT, dl, MVT::i64, Ld,
34343 Results.push_back(Ld.getValue(1));
34349 SDValue Res = DAG.getNode(ISD::EXTRACT_SUBVECTOR, dl, MVT::v2f32, Ld,
34353 Results.push_back(Ld.getValue(1));
34485 auto *Ld = cast<LoadSDNode>(N);
34488 SDValue Res = DAG.getLoad(LdVT, dl, Ld->getChain(), Ld->getBasePtr(),
34489 Ld->getPointerInfo(), Ld->getOriginalAlign(),
34490 Ld->getMemOperand()->getFlags());
34502 SDValue Ops[] = {Ld->getChain(), Ld->getBasePtr()};
34504 MVT::i64, Ld->getMemOperand());
43540 SDValue Ld =
43544 Ld.getValue(1));
43545 return TLO.CombineTo(Op, insertSubVector(TLO.DAG.getUNDEF(VT), Ld, 0,
50649 static SDValue getIndexFromUnindexedLoad(LoadSDNode *Ld) {
50650 if (Ld->isIndexed())
50653 SDValue Base = Ld->getBasePtr();
50717 auto *Ld = dyn_cast<LoadSDNode>(Node->getOperand(i));
50718 if (!Ld)
50720 const Value *MemOp = Ld->getMemOperand()->getValue();
50724 SDValue Index = getIndexFromUnindexedLoad(Ld);
52333 auto *Ld = cast<LoadSDNode>(N);
52334 EVT RegVT = Ld->getValueType(0);
52335 SDValue Ptr = Ld->getBasePtr();
52336 SDValue Chain = Ld->getChain();
52337 ISD::LoadExtType Ext = Ld->getExtensionType();
52339 if (Ext != ISD::NON_EXTLOAD || !Subtarget.hasAVX() || !Ld->isSimple())
52407 auto *Ld = cast<LoadSDNode>(N);
52408 EVT RegVT = Ld->getValueType(0);
52409 EVT MemVT = Ld->getMemoryVT();
52410 SDLoc dl(Ld);
52416 ISD::LoadExtType Ext = Ld->getExtensionType();
52420 ((Ld->isNonTemporal() && !Subtarget.hasInt256() &&
52421 Ld->getAlign() >= Align(16)) ||
52423 *Ld->getMemOperand(), &Fast) &&
52430 SDValue Ptr1 = Ld->getBasePtr();
52436 DAG.getLoad(HalfVT, dl, Ld->getChain(), Ptr1, Ld->getPointerInfo(),
52437 Ld->getOriginalAlign(),
52438 Ld->getMemOperand()->getFlags());
52439 SDValue Load2 = DAG.getLoad(HalfVT, dl, Ld->getChain(), Ptr2,
52440 Ld->getPointerInfo().getWithOffset(HalfOffset),
52441 Ld->getOriginalAlign(),
52442 Ld->getMemOperand()->getFlags());
52457 SDValue IntLoad = DAG.getLoad(IntVT, dl, Ld->getChain(), Ld->getBasePtr(),
52458 Ld->getPointerInfo(),
52459 Ld->getOriginalAlign(),
52460 Ld->getMemOperand()->getFlags());
52468 if (Ext == ISD::NON_EXTLOAD && Subtarget.hasAVX() && Ld->isSimple() &&
52470 SDValue Ptr = Ld->getBasePtr();
52471 SDValue Chain = Ld->getChain();
52489 if (SDValue V = combineConstantPoolLoads(Ld, dl, DAG, DCI, Subtarget))
52493 unsigned AddrSpace = Ld->getAddressSpace();
52497 if (PtrVT != Ld->getBasePtr().getSimpleValueType()) {
52499 DAG.getAddrSpaceCast(dl, PtrVT, Ld->getBasePtr(), AddrSpace, 0);
52500 return DAG.getExtLoad(Ext, dl, RegVT, Ld->getChain(), Cast,
52501 Ld->getPointerInfo(), MemVT, Ld->getOriginalAlign(),
52502 Ld->getMemOperand()->getFlags());
53037 auto *Ld = dyn_cast<LoadSDNode>(St->getChain());
53038 if (!Ld || !Ld->isSimple() || Ld->getBasePtr() != St->getBasePtr())
53042 SDValue V = SDValue(Ld, 0);
53082 auto *Ld = cast<LoadSDNode>(St->getValue());
53084 if (!ISD::isNormalLoad(Ld))
53088 if (!Ld->hasNUsesOfValue(1, 0))
53091 SDLoc LdDL(Ld);
53094 SDValue NewLd = DAG.getLoad(MVT::f64, LdDL, Ld->getChain(),
53095 Ld->getBasePtr(), Ld->getMemOperand());
53098 DAG.makeEquivalentMemoryOrdering(Ld, NewLd);
56337 LoadSDNode *Ld = cast<LoadSDNode>(Op0.getNode());
56348 if (Ld->isSimple() && !VT.isVector() && ISD::isNormalLoad(Op0.getNode()) &&
56352 VT, InVT, SDLoc(N), Ld->getChain(), Ld->getBasePtr(),
56353 Ld->getPointerInfo(), Ld->getOriginalAlign(), DAG);
58041 if (SDValue Ld =
58043 return Ld;
58067 SDValue Ld = DAG.getLoad(VT, DL, DAG.getEntryNode(), CV, MPI);
58068 SDValue Sub = extractSubVector(Ld, 0, DAG, DL, Op0.getValueSizeInBits());
58070 return Ld;
58671 if (auto *Ld = dyn_cast<LoadSDNode>(Op))
58672 if (Ld->getExtensionType() == Ext &&
58673 Ld->getMemoryVT().getScalarSizeInBits() <= 32)
58886 auto *Ld = cast<LoadSDNode>(In);
58887 if (Ld->isSimple()) {
58895 Ext, DL, VT, Ld->getChain(), Ld->getBasePtr(), Ld->getPointerInfo(),
58896 MemVT, Ld->getOriginalAlign(), Ld->getMemOperand()->getFlags());
58897 DAG.ReplaceAllUsesOfValueWith(SDValue(Ld, 1), Load.getValue(1));
59658 auto *Ld = cast<LoadSDNode>(Load);
59660 return Ld->getBasePtr() == St->getBasePtr();
59671 auto *Ld = cast<AtomicSDNode>(Load);
59673 return Ld->getBasePtr() == St->getBasePtr();