Lines Matching refs:LoadInst

57   using MemInstList = SmallVectorImpl<LoadInst*>;
69 SmallVector<LoadInst*, 2> VecLd; // Container for loads to widen.
75 return isa<LoadInst>(LHS) && isa<LoadInst>(RHS); in HasTwoLoadInputs()
78 LoadInst *getBaseLoad() const { in getBaseLoad()
199 LoadInst *NewLd = nullptr;
200 SmallVector<LoadInst*, 4> Loads;
203 WidenedLoad(SmallVectorImpl<LoadInst*> &Lds, LoadInst *Wide) in WidenedLoad()
207 LoadInst *getLoad() { in getLoad()
219 std::map<LoadInst*, LoadInst*> LoadPairs;
220 SmallPtrSet<LoadInst*, 4> OffsetLoads;
221 std::map<LoadInst*, std::unique_ptr<WidenedLoad>> WideLoads;
228 bool AreSequentialLoads(LoadInst *Ld0, LoadInst *Ld1, MemInstList &VecMem);
229 LoadInst* CreateWideLoad(MemInstList &Loads, IntegerType *LoadTy);
302 bool ARMParallelDSP::AreSequentialLoads(LoadInst *Ld0, LoadInst *Ld1, in AreSequentialLoads()
332 if (auto *Ld = dyn_cast<LoadInst>(SExt->getOperand(0))) { in IsNarrowSequence()
343 SmallVector<LoadInst*, 8> Loads; in RecordMemoryOps()
354 auto *Ld = dyn_cast<LoadInst>(&I); in RecordMemoryOps()
385 auto SafeToPair = [&](LoadInst *Base, LoadInst *Offset) { in RecordMemoryOps()
387 LoadInst *Dominator = BaseFirst ? Base : Offset; in RecordMemoryOps()
388 LoadInst *Dominated = BaseFirst ? Offset : Base; in RecordMemoryOps()
566 auto Ld0 = static_cast<LoadInst*>(PMul0->LHS); in CreateParallelPairs()
567 auto Ld1 = static_cast<LoadInst*>(PMul1->LHS); in CreateParallelPairs()
568 auto Ld2 = static_cast<LoadInst*>(PMul0->RHS); in CreateParallelPairs()
569 auto Ld3 = static_cast<LoadInst*>(PMul1->RHS); in CreateParallelPairs()
629 auto CreateSMLAD = [&](LoadInst* WideLd0, LoadInst *WideLd1, in InsertParallelMACs()
719 LoadInst *BaseLHS = LHSMul->getBaseLoad(); in InsertParallelMACs()
720 LoadInst *BaseRHS = RHSMul->getBaseLoad(); in InsertParallelMACs()
721 LoadInst *WideLHS = WideLoads.count(BaseLHS) ? in InsertParallelMACs()
723 LoadInst *WideRHS = WideLoads.count(BaseRHS) ? in InsertParallelMACs()
733 LoadInst* ARMParallelDSP::CreateWideLoad(MemInstList &Loads, in CreateWideLoad()
737 LoadInst *Base = Loads[0]; in CreateWideLoad()
738 LoadInst *Offset = Loads[1]; in CreateWideLoad()
765 LoadInst *DomLoad = DT->dominates(Base, Offset) ? Base : Offset; in CreateWideLoad()
775 LoadInst *WideLoad = IRB.CreateAlignedLoad(LoadTy, VecPtr, Base->getAlign()); in CreateWideLoad()