Lines Matching refs:FoundLHS
11666 const SCEV *FoundLHS = getSCEV(ICI->getOperand(0)); in isImpliedCond() local
11669 return isImpliedCond(Pred, LHS, RHS, FoundPred, FoundLHS, FoundRHS, CtxI); in isImpliedCond()
11675 const SCEV *FoundLHS, const SCEV *FoundRHS, in isImpliedCond() argument
11679 getTypeSizeInBits(FoundLHS->getType())) { in isImpliedCond()
11683 if (!CmpInst::isSigned(FoundPred) && !FoundLHS->getType()->isPointerTy() && in isImpliedCond()
11686 auto *WideType = FoundLHS->getType(); in isImpliedCond()
11690 if (isKnownViaNonRecursiveReasoning(ICmpInst::ICMP_ULE, FoundLHS, in isImpliedCond()
11694 const SCEV *TruncFoundLHS = getTruncateExpr(FoundLHS, NarrowType); in isImpliedCond()
11705 LHS = getSignExtendExpr(LHS, FoundLHS->getType()); in isImpliedCond()
11706 RHS = getSignExtendExpr(RHS, FoundLHS->getType()); in isImpliedCond()
11708 LHS = getZeroExtendExpr(LHS, FoundLHS->getType()); in isImpliedCond()
11709 RHS = getZeroExtendExpr(RHS, FoundLHS->getType()); in isImpliedCond()
11712 getTypeSizeInBits(FoundLHS->getType())) { in isImpliedCond()
11713 if (FoundLHS->getType()->isPointerTy() || FoundRHS->getType()->isPointerTy()) in isImpliedCond()
11716 FoundLHS = getSignExtendExpr(FoundLHS, LHS->getType()); in isImpliedCond()
11719 FoundLHS = getZeroExtendExpr(FoundLHS, LHS->getType()); in isImpliedCond()
11723 return isImpliedCondBalancedTypes(Pred, LHS, RHS, FoundPred, FoundLHS, in isImpliedCond()
11729 ICmpInst::Predicate FoundPred, const SCEV *FoundLHS, const SCEV *FoundRHS, in isImpliedCondBalancedTypes() argument
11732 getTypeSizeInBits(FoundLHS->getType()) && in isImpliedCondBalancedTypes()
11739 if (SimplifyICmpOperands(FoundPred, FoundLHS, FoundRHS)) in isImpliedCondBalancedTypes()
11740 if (FoundLHS == FoundRHS) in isImpliedCondBalancedTypes()
11744 if (LHS == FoundRHS || RHS == FoundLHS) { in isImpliedCondBalancedTypes()
11746 std::swap(FoundLHS, FoundRHS); in isImpliedCondBalancedTypes()
11756 return isImpliedCondOperands(Pred, LHS, RHS, FoundLHS, FoundRHS, CtxI); in isImpliedCondBalancedTypes()
11771 return isImpliedCondOperands(FoundPred, RHS, LHS, FoundLHS, FoundRHS, in isImpliedCondBalancedTypes()
11773 if (!isa<SCEVConstant>(FoundRHS) && !isa<SCEVAddRecExpr>(FoundLHS)) in isImpliedCondBalancedTypes()
11774 return isImpliedCondOperands(Pred, LHS, RHS, FoundRHS, FoundLHS, CtxI); in isImpliedCondBalancedTypes()
11781 FoundLHS, FoundRHS, CtxI)) in isImpliedCondBalancedTypes()
11784 if (!FoundLHS->getType()->isPointerTy() && in isImpliedCondBalancedTypes()
11786 isImpliedCondOperands(Pred, LHS, RHS, getNotSCEV(FoundLHS), in isImpliedCondBalancedTypes()
11802 if ((isKnownNonNegative(FoundLHS) && isKnownNonNegative(FoundRHS)) || in isImpliedCondBalancedTypes()
11803 (isKnownNegative(FoundLHS) && isKnownNegative(FoundRHS))) in isImpliedCondBalancedTypes()
11804 return isImpliedCondOperands(Pred, LHS, RHS, FoundLHS, FoundRHS, CtxI); in isImpliedCondBalancedTypes()
11809 *CanonicalFoundLHS = FoundLHS, *CanonicalFoundRHS = FoundRHS; in isImpliedCondBalancedTypes()
11839 (isa<SCEVConstant>(FoundLHS) || isa<SCEVConstant>(FoundRHS))) { in isImpliedCondBalancedTypes()
11844 if (isa<SCEVConstant>(FoundLHS)) { in isImpliedCondBalancedTypes()
11845 C = cast<SCEVConstant>(FoundLHS); in isImpliedCondBalancedTypes()
11849 V = FoundLHS; in isImpliedCondBalancedTypes()
11917 if (isImpliedCondOperands(Pred, LHS, RHS, FoundLHS, FoundRHS, CtxI)) in isImpliedCondBalancedTypes()
11921 if (isImpliedCondOperands(FoundPred, LHS, RHS, FoundLHS, FoundRHS, CtxI)) in isImpliedCondBalancedTypes()
11924 if (isImpliedCondOperandsViaRanges(Pred, LHS, RHS, FoundPred, FoundLHS, FoundRHS)) in isImpliedCondBalancedTypes()
12005 const SCEV *FoundLHS, const SCEV *FoundRHS, const Instruction *CtxI) { in isImpliedCondOperandsViaAddRecStart() argument
12023 if (auto *AR = dyn_cast<SCEVAddRecExpr>(FoundLHS)) { in isImpliedCondOperandsViaAddRecStart()
12040 if (!isAvailableAtLoopEntry(FoundLHS, AR->getLoop())) in isImpliedCondOperandsViaAddRecStart()
12042 return isImpliedCondOperands(Pred, LHS, RHS, FoundLHS, AR->getStart()); in isImpliedCondOperandsViaAddRecStart()
12050 const SCEV *FoundLHS, const SCEV *FoundRHS) { in isImpliedCondOperandsViaNoOverflow() argument
12058 const auto *AddRecFoundLHS = dyn_cast<SCEVAddRecExpr>(FoundLHS); in isImpliedCondOperandsViaNoOverflow()
12102 std::optional<APInt> LDiff = computeConstantDifference(LHS, FoundLHS); in isImpliedCondOperandsViaNoOverflow()
12127 const SCEV *FoundLHS, in isImpliedViaMerge() argument
12173 std::swap(FoundLHS, FoundRHS); in isImpliedViaMerge()
12184 isImpliedCondOperandsViaRanges(Pred, S1, S2, Pred, FoundLHS, FoundRHS) || in isImpliedViaMerge()
12185 isImpliedViaOperations(Pred, S1, S2, FoundLHS, FoundRHS, Depth); in isImpliedViaMerge()
12242 const SCEV *FoundLHS, in isImpliedCondOperandsViaShift() argument
12248 std::swap(FoundLHS, FoundRHS); in isImpliedCondOperandsViaShift()
12251 if (LHS != FoundLHS) in isImpliedCondOperandsViaShift()
12283 const SCEV *FoundLHS, in isImpliedCondOperands() argument
12286 if (isImpliedCondOperandsViaRanges(Pred, LHS, RHS, Pred, FoundLHS, FoundRHS)) in isImpliedCondOperands()
12289 if (isImpliedCondOperandsViaNoOverflow(Pred, LHS, RHS, FoundLHS, FoundRHS)) in isImpliedCondOperands()
12292 if (isImpliedCondOperandsViaShift(Pred, LHS, RHS, FoundLHS, FoundRHS)) in isImpliedCondOperands()
12295 if (isImpliedCondOperandsViaAddRecStart(Pred, LHS, RHS, FoundLHS, FoundRHS, in isImpliedCondOperands()
12300 FoundLHS, FoundRHS); in isImpliedCondOperands()
12382 const SCEV *FoundLHS, in isImpliedViaOperations() argument
12388 assert(getTypeSizeInBits(FoundLHS->getType()) == in isImpliedViaOperations()
12399 std::swap(FoundLHS, FoundRHS); in isImpliedViaOperations()
12407 if (isKnownNonNegative(FoundLHS) && isKnownNonNegative(FoundRHS)) { in isImpliedViaOperations()
12412 if (isImpliedCondOperands(ICmpInst::ICMP_SGT, LHS, MinusOne, FoundLHS, in isImpliedViaOperations()
12414 isImpliedCondOperands(ICmpInst::ICMP_SGT, RHS, MinusOne, FoundLHS, in isImpliedViaOperations()
12432 auto *OrigFoundLHS = FoundLHS; in isImpliedViaOperations()
12434 FoundLHS = GetOpFromSExt(FoundLHS); in isImpliedViaOperations()
12492 if (!Numerator || Numerator->getType() != FoundLHS->getType()) in isImpliedViaOperations()
12497 if (!HasSameValue(Numerator, FoundLHS) || !isKnownPositive(Denominator)) in isImpliedViaOperations()
12593 const SCEV *FoundLHS, in isImpliedCondOperandsHelper() argument
12599 if (HasSameValue(LHS, FoundLHS) && HasSameValue(RHS, FoundRHS)) in isImpliedCondOperandsHelper()
12604 if (isKnownViaNonRecursiveReasoning(ICmpInst::ICMP_SLE, LHS, FoundLHS) && in isImpliedCondOperandsHelper()
12610 if (isKnownViaNonRecursiveReasoning(ICmpInst::ICMP_SGE, LHS, FoundLHS) && in isImpliedCondOperandsHelper()
12616 if (isKnownViaNonRecursiveReasoning(ICmpInst::ICMP_ULE, LHS, FoundLHS) && in isImpliedCondOperandsHelper()
12622 if (isKnownViaNonRecursiveReasoning(ICmpInst::ICMP_UGE, LHS, FoundLHS) && in isImpliedCondOperandsHelper()
12629 if (isImpliedViaOperations(Pred, LHS, RHS, FoundLHS, FoundRHS)) in isImpliedCondOperandsHelper()
12639 const SCEV *FoundLHS, in isImpliedCondOperandsViaRanges() argument
12646 std::optional<APInt> Addend = computeConstantDifference(LHS, FoundLHS); in isImpliedCondOperandsViaRanges()