Lines Matching refs:LOps
632 static bool foldLoadsRecursive(Value *V, LoadOps &LOps, const DataLayout &DL,
645 if (!foldLoadsRecursive(X, LOps, DL, AA) && LOps.FoundRoot)
652 LoadInst *LI1 = LOps.Root;
653 const APInt *ShAmt1 = LOps.Shift;
654 if (LOps.FoundRoot == false &&
698 LoadInst *Start = LOps.FoundRoot ? LOps.RootInsert : LI1, *End = LI2;
703 if (LOps.FoundRoot)
704 Loc = Loc.getWithNewSize(LOps.LoadSize);
743 if (LOps.FoundRoot) {
745 LoadSize1 = LOps.LoadSize;
747 LoadSize2 = LOps.LoadSize;
758 // Update LOps
759 AAMDNodes AATags1 = LOps.AATags;
761 if (LOps.FoundRoot == false) {
762 LOps.FoundRoot = true;
765 LOps.LoadSize = LoadSize1 + LoadSize2;
766 LOps.RootInsert = Start;
769 LOps.AATags = AATags1.concat(AATags2);
771 LOps.Root = LI1;
772 LOps.Shift = ShAmt1;
773 LOps.ZextType = X->getType();
787 LoadOps LOps;
788 if (!foldLoadsRecursive(&I, LOps, DL, AA) || !LOps.FoundRoot)
792 LoadInst *NewLoad = nullptr, *LI1 = LOps.Root;
794 IntegerType *WiderType = IntegerType::get(I.getContext(), LOps.LoadSize);
802 Allowed = TTI.allowsMisalignedMemoryAccesses(I.getContext(), LOps.LoadSize,
809 Builder.SetInsertPoint(LOps.RootInsert);
810 if (!DT.dominates(Load1Ptr, LOps.RootInsert)) {
821 if (LOps.AATags)
822 NewLoad->setAAMetadata(LOps.AATags);
826 if (LOps.ZextType)
827 NewOp = Builder.CreateZExt(NewOp, LOps.ZextType);
831 if (LOps.Shift)
832 NewOp = Builder.CreateShl(NewOp, ConstantInt::get(I.getContext(), *LOps.Shift));