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()
137 ICmpInst::Predicate Pred = Cmp->getPredicate(); in foldSelectICmpAnd() local
138 if (ICmpInst::isEquality(Pred)) { in foldSelectICmpAnd()
149 Pred, V, AndMask)) { in foldSelectICmpAnd()
150 assert(ICmpInst::isEquality(Pred) && "Not equality test?"); in foldSelectICmpAnd()
179 if (Pred == ICmpInst::ICMP_EQ) { in foldSelectICmpAnd()
186 if (Pred == ICmpInst::ICMP_NE) { in foldSelectICmpAnd()
206 ShouldNotVal ^= Pred == ICmpInst::ICMP_NE; in foldSelectICmpAnd()
637 ICmpInst::Predicate Pred; in foldSelectICmpAndZeroShl() local
639 if (!match(Cmp, m_ICmp(Pred, m_Value(AndVal), m_Zero()))) in foldSelectICmpAndZeroShl()
642 if (Pred == ICmpInst::ICMP_NE) { in foldSelectICmpAndZeroShl()
643 Pred = ICmpInst::ICMP_EQ; in foldSelectICmpAndZeroShl()
649 if (Pred != ICmpInst::ICMP_EQ || in foldSelectICmpAndZeroShl()
675 ICmpInst::Predicate Pred = IC->getPredicate(); in foldSelectICmpLshrAshr() local
683 if ((Pred != ICmpInst::ICMP_SGT || in foldSelectICmpLshrAshr()
686 (Pred != ICmpInst::ICMP_SLT || in foldSelectICmpLshrAshr()
692 if (Pred == ICmpInst::ICMP_SLT) in foldSelectICmpLshrAshr()
741 CmpInst::Predicate Pred = IC->getPredicate(); in foldSelectICmpAndBinOp() local
753 if (!decomposeBitTestICmp(CmpLHS, CmpRHS, Pred, CmpLHS, C1) || in foldSelectICmpAndBinOp()
768 NeedXor = Pred == ICmpInst::ICMP_NE; in foldSelectICmpAndBinOp()
772 NeedXor = Pred == ICmpInst::ICMP_EQ; in foldSelectICmpAndBinOp()
907 ICmpInst::Predicate Pred = ICI->getPredicate(); in canonicalizeSaturatedSubtract() local
914 Pred = ICmpInst::getInversePredicate(Pred); in canonicalizeSaturatedSubtract()
923 if (Pred == ICmpInst::ICMP_NE) { in canonicalizeSaturatedSubtract()
930 if (!ICmpInst::isUnsigned(Pred)) in canonicalizeSaturatedSubtract()
933 if (Pred == ICmpInst::ICMP_ULE || Pred == ICmpInst::ICMP_ULT) { in canonicalizeSaturatedSubtract()
936 Pred = ICmpInst::getSwappedPredicate(Pred); in canonicalizeSaturatedSubtract()
939 assert((Pred == ICmpInst::ICMP_UGE || Pred == ICmpInst::ICMP_UGT) && in canonicalizeSaturatedSubtract()
978 ICmpInst::Predicate Pred = Cmp->getPredicate(); in canonicalizeSaturatedAdd() local
981 if (Pred == ICmpInst::ICMP_ULT && in canonicalizeSaturatedAdd()
994 Pred = CmpInst::getInversePredicate(Pred); in canonicalizeSaturatedAdd()
1000 if (Pred == ICmpInst::ICMP_UGT || Pred == ICmpInst::ICMP_UGE) { in canonicalizeSaturatedAdd()
1002 Pred = CmpInst::getSwappedPredicate(Pred); in canonicalizeSaturatedAdd()
1004 if (Pred != ICmpInst::ICMP_ULT && Pred != ICmpInst::ICMP_ULE) in canonicalizeSaturatedAdd()
1029 if (Pred == ICmpInst::ICMP_ULT && in canonicalizeSaturatedAdd()
1049 ICmpInst::Predicate Pred = Cmp->getStrictPredicate(); in foldAbsDiff() local
1056 Pred = ICmpInst::getSwappedPredicate(Pred); in foldAbsDiff()
1061 if (Pred == CmpInst::ICMP_SGT && in foldAbsDiff()
1136 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectCttzCtlz() local
1146 if (Pred == ICmpInst::ICMP_NE) in foldSelectCttzCtlz()
1574 ICmpInst::Predicate Pred; in tryToReuseConstantFromSelectInComparison() local
1578 Pred, m_Value(X), in tryToReuseConstantFromSelectInComparison()
1583 if (ICmpInst::isEquality(Pred)) in tryToReuseConstantFromSelectInComparison()
1588 if (!InstCombiner::isCanonicalPredicate(Pred)) in tryToReuseConstantFromSelectInComparison()
1599 if (Pred == CmpInst::ICMP_ULT && match(X, m_Add(m_Value(), m_Constant()))) in tryToReuseConstantFromSelectInComparison()
1622 InstCombiner::getFlippedStrictnessPredicateAndConstant(Pred, C0); in tryToReuseConstantFromSelectInComparison()
1634 Pred = ICmpInst::getSwappedPredicate(Pred); // Yes, swapped. in tryToReuseConstantFromSelectInComparison()
1635 Value *NewCmp = IC.Builder.CreateICmp(Pred, X, FlippedStrictness->second, in tryToReuseConstantFromSelectInComparison()
1672 CmpInst::Predicate Pred; in foldSelectInstWithICmpConst() local
1673 if (!match(ICI, m_ICmp(Pred, m_Value(V), m_APInt(CmpC)))) in foldSelectInstWithICmpConst()
1679 if (Pred == ICmpInst::ICMP_EQ && V == FVal) { in foldSelectInstWithICmpConst()
1719 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectICmpEq() local
1720 if (!ICmpInst::isEquality(Pred)) in foldSelectICmpEq()
1728 if (Pred == ICmpInst::ICMP_NE) in foldSelectICmpEq()
1847 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectInstWithICmp() local
1851 if (CmpLHS == TrueVal && Pred == ICmpInst::ICMP_EQ) { in foldSelectInstWithICmp()
1855 } else if (CmpLHS == FalseVal && Pred == ICmpInst::ICMP_NE) { in foldSelectInstWithICmp()
1869 if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes()) && in foldSelectInstWithICmp()
1891 if (ICmpInst::isEquality(Pred) && in foldSelectInstWithICmp()
1895 TrueWhenUnset = Pred == ICmpInst::ICMP_EQ; in foldSelectInstWithICmp()
1896 } else if (Pred == ICmpInst::ICMP_SLT && match(CmpRHS, m_Zero())) { in foldSelectInstWithICmp()
1901 } else if (Pred == ICmpInst::ICMP_SGT && match(CmpRHS, m_AllOnes())) { in foldSelectInstWithICmp()
2115 ICmpInst::Predicate Pred; in foldOverflowingAddSubSelect() local
2118 if (!match(Limit, m_Select(m_ICmp(Pred, m_Value(Op), m_APInt(C)), in foldOverflowingAddSubSelect()
2138 if (Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C) && in foldOverflowingAddSubSelect()
2145 if (Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2151 if (Op == X && Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2156 if (Op == X && Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 2) && in foldOverflowingAddSubSelect()
2161 if (Op == Y && Pred == ICmpInst::ICMP_SLT && IsZeroOrOne(*C) && in foldOverflowingAddSubSelect()
2166 if (Op == Y && Pred == ICmpInst::ICMP_SGT && IsZeroOrOne(*C + 1) && in foldOverflowingAddSubSelect()
2324 CmpInst::Predicate Pred; in foldSelectCmpBitcasts() local
2326 if (!match(Cond, m_Cmp(Pred, m_Value(A), m_Value(B)))) in foldSelectCmpBitcasts()
2487 ICmpInst::Predicate Pred; in foldSelectFunnelShift() local
2488 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_Specific(ShAmt), m_ZeroInt()))) || in foldSelectFunnelShift()
2489 Pred != ICmpInst::ICMP_EQ) in foldSelectFunnelShift()
2529 ICmpInst::Predicate Pred; in foldSelectToCopysign() local
2530 if (!match(Cond, m_OneUse(m_ICmp(Pred, m_ElementWiseBitCast(m_Value(X)), in foldSelectToCopysign()
2532 !isSignBitCheck(Pred, *C, IsTrueIfSignSet) || X->getType() != SelType) in foldSelectToCopysign()
2675 for (auto *Pred : predecessors(BB)) { in foldSelectToPhiImpl() local
2677 BasicBlockEdge Incoming(Pred, BB); in foldSelectToPhiImpl()
2679 Inputs[Pred] = IfTrue->DoPHITranslation(BB, Pred); in foldSelectToPhiImpl()
2681 Inputs[Pred] = IfFalse->DoPHITranslation(BB, Pred); in foldSelectToPhiImpl()
2685 if (auto *Insn = dyn_cast<Instruction>(Inputs[Pred])) in foldSelectToPhiImpl()
2686 if (!DT.dominates(Insn, Pred->getTerminator())) in foldSelectToPhiImpl()
2692 for (auto *Pred : predecessors(BB)) in foldSelectToPhiImpl() local
2693 PN->addIncoming(Inputs[Pred], Pred); in foldSelectToPhiImpl()
2725 ICmpInst::Predicate Pred; in foldSelectWithSRem() local
2730 if (!(match(CondVal, m_ICmp(Pred, m_Value(RemRes), m_APInt(C))) && in foldSelectWithSRem()
2731 isSignBitCheck(Pred, *C, TrueIfSigned))) in foldSelectWithSRem()
2784 CmpInst::Predicate Pred; in foldSelectWithFrozenICmp() local
2786 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2787 (Pred == ICmpInst::ICMP_EQ || Pred == ICmpInst::ICMP_NE)) { in foldSelectWithFrozenICmp()
2788 return Pred == ICmpInst::ICMP_EQ ? FalseVal : TrueVal; in foldSelectWithFrozenICmp()
2833 CmpInst::Predicate Pred; in foldSelectWithFCmpToFabs() local
2838 if (!match(CondVal, m_FCmp(Pred, m_Specific(X), m_AnyZeroFP()))) in foldSelectWithFCmpToFabs()
2844 if (!Swap && (Pred == FCmpInst::FCMP_OLE || Pred == FCmpInst::FCMP_ULE)) { in foldSelectWithFCmpToFabs()
2848 if (Swap && (Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_UGT)) { in foldSelectWithFCmpToFabs()
2884 Pred = FCmpInst::getSwappedPredicate(Pred); in foldSelectWithFCmpToFabs()
2886 bool IsLTOrLE = Pred == FCmpInst::FCMP_OLT || Pred == FCmpInst::FCMP_OLE || in foldSelectWithFCmpToFabs()
2887 Pred == FCmpInst::FCMP_ULT || Pred == FCmpInst::FCMP_ULE; in foldSelectWithFCmpToFabs()
2888 bool IsGTOrGE = Pred == FCmpInst::FCMP_OGT || Pred == FCmpInst::FCMP_OGE || in foldSelectWithFCmpToFabs()
2889 Pred == FCmpInst::FCMP_UGT || Pred == FCmpInst::FCMP_UGE; in foldSelectWithFCmpToFabs()
2913 CmpInst::Predicate Pred; in foldSelectWithFCmpToFabs() local
2917 m_ICmp(Pred, m_ElementWiseBitCast(m_Specific(X)), m_APInt(C))) || in foldSelectWithFCmpToFabs()
2918 !isSignBitCheck(Pred, *C, TrueIfSigned)) in foldSelectWithFCmpToFabs()
2957 ICmpInst::Predicate Pred; in foldRoundUpIntegerWithPow2Alignment() local
2959 if (!match(Cond, m_ICmp(Pred, m_Value(XLowBits), m_ZeroInt())) || in foldRoundUpIntegerWithPow2Alignment()
2960 !ICmpInst::isEquality(Pred)) in foldRoundUpIntegerWithPow2Alignment()
2963 if (Pred == ICmpInst::Predicate::ICMP_NE) in foldRoundUpIntegerWithPow2Alignment()
3396 static bool isSafeToRemoveBitCeilSelect(ICmpInst::Predicate Pred, Value *Cond0, in isSafeToRemoveBitCeilSelect() argument
3420 CmpInst::getInversePredicate(Pred), *Cond1); in isSafeToRemoveBitCeilSelect()
3496 ICmpInst::Predicate Pred; in foldBitCeil() local
3499 if (!match(SI.getCondition(), m_ICmp(Pred, m_Value(Cond0), m_APInt(Cond1)))) in foldBitCeil()
3504 Pred = CmpInst::getInversePredicate(Pred); in foldBitCeil()
3514 !isSafeToRemoveBitCeilSelect(Pred, Cond0, Cond1, CtlzOp, BitWidth, in foldBitCeil()
3655 FCmpInst::Predicate Pred = FCmp->getPredicate(); in visitSelectInst() local
3665 if (FCmp->hasOneUse() && FCmpInst::isUnordered(Pred)) { in visitSelectInst()
3696 if (Pred == CmpInst::FCMP_OEQ || Pred == CmpInst::FCMP_UEQ) { in visitSelectInst()
3699 } else if (Pred == CmpInst::FCMP_ONE || Pred == CmpInst::FCMP_UNE) { in visitSelectInst()