Lines Matching defs:LOps
623 static bool foldLoadsRecursive(Value *V, LoadOps &LOps, const DataLayout &DL,
636 if (!foldLoadsRecursive(X, LOps, DL, AA) && LOps.FoundRoot)
643 LoadInst *LI1 = LOps.Root;
644 const APInt *ShAmt1 = LOps.Shift;
645 if (LOps.FoundRoot == false &&
689 LoadInst *Start = LOps.FoundRoot ? LOps.RootInsert : LI1, *End = LI2;
694 if (LOps.FoundRoot)
695 Loc = Loc.getWithNewSize(LOps.LoadSize);
734 if (LOps.FoundRoot) {
736 LoadSize1 = LOps.LoadSize;
738 LoadSize2 = LOps.LoadSize;
749 // Update LOps
750 AAMDNodes AATags1 = LOps.AATags;
752 if (LOps.FoundRoot == false) {
753 LOps.FoundRoot = true;
756 LOps.LoadSize = LoadSize1 + LoadSize2;
757 LOps.RootInsert = Start;
760 LOps.AATags = AATags1.concat(AATags2);
762 LOps.Root = LI1;
763 LOps.Shift = ShAmt1;
764 LOps.ZextType = X->getType();
778 LoadOps LOps;
779 if (!foldLoadsRecursive(&I, LOps, DL, AA) || !LOps.FoundRoot)
783 LoadInst *NewLoad = nullptr, *LI1 = LOps.Root;
785 IntegerType *WiderType = IntegerType::get(I.getContext(), LOps.LoadSize);
793 Allowed = TTI.allowsMisalignedMemoryAccesses(I.getContext(), LOps.LoadSize,
800 Builder.SetInsertPoint(LOps.RootInsert);
801 if (!DT.dominates(Load1Ptr, LOps.RootInsert)) {
812 if (LOps.AATags)
813 NewLoad->setAAMetadata(LOps.AATags);
817 if (LOps.ZextType)
818 NewOp = Builder.CreateZExt(NewOp, LOps.ZextType);
822 if (LOps.Shift)
823 NewOp = Builder.CreateShl(NewOp, ConstantInt::get(I.getContext(), *LOps.Shift));