Lines Matching refs:Pred
61 CmpInst::Predicate Pred; in foldSelectBinOpIdentity() local
62 if (!match(Sel.getCondition(), m_Cmp(Pred, m_Value(X), m_Constant(C)))) in foldSelectBinOpIdentity()
66 if (ICmpInst::isEquality(Pred)) in foldSelectBinOpIdentity()
67 IsEq = Pred == ICmpInst::ICMP_EQ; in foldSelectBinOpIdentity()
68 else if (Pred == FCmpInst::FCMP_OEQ) in foldSelectBinOpIdentity()
70 else if (Pred == FCmpInst::FCMP_UNE) in foldSelectBinOpIdentity()
85 if (!IdC || !CmpInst::isFPPredicate(Pred)) in foldSelectBinOpIdentity()
136 ICmpInst::Predicate Pred = Cmp->getPredicate(); in foldSelectICmpAnd() local
137 if (ICmpInst::isEquality(Pred)) { in foldSelectICmpAnd()
148 Pred, V, AndMask)) { in foldSelectICmpAnd()
149 assert(ICmpInst::isEquality(Pred) && "Not equality test?"); in foldSelectICmpAnd()
178 if (Pred == ICmpInst::ICMP_EQ) { in foldSelectICmpAnd()
185 if (Pred == ICmpInst::ICMP_NE) { in foldSelectICmpAnd()
224 ShouldNotVal ^= Pred == ICmpInst::ICMP_NE; in foldSelectICmpAnd()
621 ICmpInst::Predicate Pred; in foldSelectICmpAndZeroShl() local
623 if (!match(Cmp, m_ICmp(Pred, m_Value(AndVal), m_Zero()))) in foldSelectICmpAndZeroShl()
626 if (Pred == ICmpInst::ICMP_NE) { in foldSelectICmpAndZeroShl()
627 Pred = ICmpInst::ICMP_EQ; in foldSelectICmpAndZeroShl()
633 if (Pred != ICmpInst::ICMP_EQ || in foldSelectICmpAndZeroShl()
659 ICmpInst::Predicate Pred = IC->getPredicate(); in foldSelectICmpLshrAshr() local
667 if ((Pred != ICmpInst::ICMP_SGT || in foldSelectICmpLshrAshr()
670 (Pred != ICmpInst::ICMP_SLT || in foldSelectICmpLshrAshr()
676 if (Pred == ICmpInst::ICMP_SLT) in foldSelectICmpLshrAshr()
725 CmpInst::Predicate Pred = IC->getPredicate(); in foldSelectICmpAndBinOp() local
737 if (!decomposeBitTestICmp(CmpLHS, CmpRHS, Pred, CmpLHS, C1) || in foldSelectICmpAndBinOp()
752 NeedXor = Pred == ICmpInst::ICMP_NE; in foldSelectICmpAndBinOp()
756 NeedXor = Pred == ICmpInst::ICMP_EQ; in foldSelectICmpAndBinOp()
891 ICmpInst::Predicate Pred = ICI->getPredicate(); in canonicalizeSaturatedSubtract() local
898 Pred = ICmpInst::getInversePredicate(Pred); in canonicalizeSaturatedSubtract()
907 if (Pred == ICmpInst::ICMP_NE) { in canonicalizeSaturatedSubtract()
914 if (!ICmpInst::isUnsigned(Pred)) in canonicalizeSaturatedSubtract()
917 if (Pred == ICmpInst::ICMP_ULE || Pred == ICmpInst::ICMP_ULT) { in canonicalizeSaturatedSubtract()
920 Pred = ICmpInst::getSwappedPredicate(Pred); in canonicalizeSaturatedSubtract()
923 assert((Pred == ICmpInst::ICMP_UGE || Pred == ICmpInst::ICMP_UGT) && in canonicalizeSaturatedSubtract()
962 ICmpInst::Predicate Pred = Cmp->getPredicate(); in canonicalizeSaturatedAdd() local
965 if (Pred == ICmpInst::ICMP_ULT && in canonicalizeSaturatedAdd()
978 Pred = CmpInst::getInversePredicate(Pred); in canonicalizeSaturatedAdd()
984 if (Pred == ICmpInst::ICMP_UGT || Pred == ICmpInst::ICMP_UGE) { in canonicalizeSaturatedAdd()
986 Pred = CmpInst::getSwappedPredicate(Pred); in canonicalizeSaturatedAdd()
988 if (Pred != ICmpInst::ICMP_ULT && Pred != ICmpInst::ICMP_ULE) in canonicalizeSaturatedAdd()
1013 if (Pred == ICmpInst::ICMP_ULT && in canonicalizeSaturatedAdd()
1033 ICmpInst::Predicate Pred = Cmp->getStrictPredicate(); in foldAbsDiff() local
1040 Pred = ICmpInst::getSwappedPredicate(Pred); in foldAbsDiff()
1045 if (Pred == CmpInst::ICMP_SGT && in foldAbsDiff()
1120 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectCttzCtlz() local
1130 if (Pred == ICmpInst::ICMP_NE) in foldSelectCttzCtlz()
1536 ICmpInst::Predicate Pred; in tryToReuseConstantFromSelectInComparison() local
1540 Pred, m_Value(X), in tryToReuseConstantFromSelectInComparison()
1545 if (ICmpInst::isEquality(Pred)) in tryToReuseConstantFromSelectInComparison()
1550 if (!InstCombiner::isCanonicalPredicate(Pred)) in tryToReuseConstantFromSelectInComparison()
1561 if (Pred == CmpInst::ICMP_ULT && match(X, m_Add(m_Value(), m_Constant()))) in tryToReuseConstantFromSelectInComparison()
1584 InstCombiner::getFlippedStrictnessPredicateAndConstant(Pred, C0); in tryToReuseConstantFromSelectInComparison()
1596 Pred = ICmpInst::getSwappedPredicate(Pred); // Yes, swapped. in tryToReuseConstantFromSelectInComparison()
1597 Value *NewCmp = IC.Builder.CreateICmp(Pred, X, FlippedStrictness->second, in tryToReuseConstantFromSelectInComparison()
1634 CmpInst::Predicate Pred; in foldSelectInstWithICmpConst() local
1635 if (!match(ICI, m_ICmp(Pred, m_Value(V), m_APInt(CmpC)))) in foldSelectInstWithICmpConst()
1641 if (Pred == ICmpInst::ICMP_EQ && V == FVal) { in foldSelectInstWithICmpConst()
1706 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectInstWithICmp() local
1710 if (CmpLHS == TrueVal && Pred == ICmpInst::ICMP_EQ) { in foldSelectInstWithICmp()
1714 } else if (CmpLHS == FalseVal && Pred == ICmpInst::ICMP_NE) { in foldSelectInstWithICmp()
1725 if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes()) && in foldSelectInstWithICmp()
1747 if (ICmpInst::isEquality(Pred) && in foldSelectInstWithICmp()
1751 TrueWhenUnset = Pred == ICmpInst::ICMP_EQ; in foldSelectInstWithICmp()
1752 } else if (Pred == ICmpInst::ICMP_SLT && match(CmpRHS, m_Zero())) { in foldSelectInstWithICmp()
1757 } else if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes())) { in foldSelectInstWithICmp()
1971 ICmpInst::Predicate Pred; in foldOverflowingAddSubSelect() local
1974 if (!match(Limit, m_Select(m_ICmp(Pred, m_Value(Op), m_APInt(C)), in foldOverflowingAddSubSelect()
1994 if (Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C) && in foldOverflowingAddSubSelect()
2001 if (Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2007 if (Op == X && Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2012 if (Op == X && Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 2) && in foldOverflowingAddSubSelect()
2017 if (Op == Y && Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C) && in foldOverflowingAddSubSelect()
2022 if (Op == Y && Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2180 CmpInst::Predicate Pred; in foldSelectCmpBitcasts() local
2182 if (!match(Cond, m_Cmp(Pred, m_Value(A), m_Value(B)))) in foldSelectCmpBitcasts()
2343 ICmpInst::Predicate Pred; in foldSelectFunnelShift() local
2344 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()))) || in foldSelectFunnelShift()
2345 Pred != ICmpInst::ICMP_EQ) in foldSelectFunnelShift()
2388 ICmpInst::Predicate Pred; in foldSelectToCopysign() local
2389 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_BitCast(m_Value(X)), m_APInt(C)))) || in foldSelectToCopysign()
2390 !InstCombiner::isSignBitCheck(Pred, *C, IsTrueIfSignSet) || in foldSelectToCopysign()
2534 for (auto *Pred : predecessors(BB)) { in foldSelectToPhiImpl() local
2536 BasicBlockEdge Incoming(Pred, BB); in foldSelectToPhiImpl()
2538 Inputs[Pred] = IfTrue->DoPHITranslation(BB, Pred); in foldSelectToPhiImpl()
2540 Inputs[Pred] = IfFalse->DoPHITranslation(BB, Pred); in foldSelectToPhiImpl()
2544 if (auto *Insn = dyn_cast<Instruction>(Inputs[Pred])) in foldSelectToPhiImpl()
2545 if (!DT.dominates(Insn, Pred->getTerminator())) in foldSelectToPhiImpl()
2551 for (auto *Pred : predecessors(BB)) in foldSelectToPhiImpl() local
2552 PN->addIncoming(Inputs[Pred], Pred); in foldSelectToPhiImpl()
2584 ICmpInst::Predicate Pred; in foldSelectWithSRem() local
2589 if (!(match(CondVal, m_ICmp(Pred, m_Value(RemRes), m_APInt(C))) && in foldSelectWithSRem()
2590 IC.isSignBitCheck(Pred, *C, TrueIfSigned))) in foldSelectWithSRem()
2643 CmpInst::Predicate Pred; in foldSelectWithFrozenICmp() local
2645 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2646 (Pred == ICmpInst::ICMP_EQ || Pred == ICmpInst::ICMP_NE)) { in foldSelectWithFrozenICmp()
2647 return Pred == ICmpInst::ICMP_EQ ? FalseVal : TrueVal; in foldSelectWithFrozenICmp()
2705 CmpInst::Predicate Pred; in foldSelectWithFCmpToFabs() local
2710 if (!match(CondVal, m_FCmp(Pred, m_Specific(X), m_AnyZeroFP()))) in foldSelectWithFCmpToFabs()
2716 if (!Swap && (Pred == FCmpInst::FCMP_OLE || Pred == FCmpInst::FCMP_ULE)) { in foldSelectWithFCmpToFabs()
2720 if (Swap && (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_UGT)) { in foldSelectWithFCmpToFabs()
2756 Pred = FCmpInst::getSwappedPredicate(Pred); in foldSelectWithFCmpToFabs()
2758 bool IsLTOrLE = Pred == FCmpInst::FCMP_OLT || Pred == FCmpInst::FCMP_OLE || in foldSelectWithFCmpToFabs()
2759 Pred == FCmpInst::FCMP_ULT || Pred == FCmpInst::FCMP_ULE; in foldSelectWithFCmpToFabs()
2760 bool IsGTOrGE = Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_OGE || in foldSelectWithFCmpToFabs()
2761 Pred == FCmpInst::FCMP_UGT || Pred == FCmpInst::FCMP_UGE; in foldSelectWithFCmpToFabs()
2799 ICmpInst::Predicate Pred; in foldRoundUpIntegerWithPow2Alignment() local
2801 if (!match(Cond, m_ICmp(Pred, m_Value(XLowBits), m_ZeroInt())) || in foldRoundUpIntegerWithPow2Alignment()
2802 !ICmpInst::isEquality(Pred)) in foldRoundUpIntegerWithPow2Alignment()
2805 if (Pred == ICmpInst::Predicate::ICMP_NE) in foldRoundUpIntegerWithPow2Alignment()
3202 static bool isSafeToRemoveBitCeilSelect(ICmpInst::Predicate Pred, Value *Cond0, in isSafeToRemoveBitCeilSelect() argument
3226 CmpInst::getInversePredicate(Pred), *Cond1); in isSafeToRemoveBitCeilSelect()
3302 ICmpInst::Predicate Pred; in foldBitCeil() local
3305 if (!match(SI.getCondition(), m_ICmp(Pred, m_Value(Cond0), m_APInt(Cond1)))) in foldBitCeil()
3310 Pred = CmpInst::getInversePredicate(Pred); in foldBitCeil()
3320 !isSafeToRemoveBitCeilSelect(Pred, Cond0, Cond1, CtlzOp, BitWidth, in foldBitCeil()
3434 FCmpInst::Predicate Pred = FCmp->getPredicate(); in visitSelectInst() local
3444 if (FCmp->hasOneUse() && FCmpInst::isUnordered(Pred)) { in visitSelectInst()
3475 if (Pred == CmpInst::FCMP_OEQ || Pred == CmpInst::FCMP_UEQ) { in visitSelectInst()
3478 } else if (Pred == CmpInst::FCMP_ONE || Pred == CmpInst::FCMP_UNE) { in visitSelectInst()