Home | History | Annotate | Download | only in Analysis

Lines Matching refs:CmpInst

79 static bool isSameCompare(Value *V, CmpInst::Predicate Pred, Value *LHS,
81 CmpInst *Cmp = dyn_cast<CmpInst>(V);
84 CmpInst::Predicate CPred = Cmp->getPredicate();
88 return CPred == CmpInst::getSwappedPredicate(Pred) && CLHS == RHS &&
430 static Value *ThreadCmpOverSelect(CmpInst::Predicate Pred, Value *LHS,
440 Pred = CmpInst::getSwappedPredicate(Pred);
555 static Value *ThreadCmpOverPHI(CmpInst::Predicate Pred, Value *LHS, Value *RHS,
564 Pred = CmpInst::getSwappedPredicate(Pred);
1571 return CmpInst::makeCmpResultType(Op->getType());
1577 static Value *ExtractEquivalentCondition(Value *V, CmpInst::Predicate Pred,
1582 CmpInst *Cmp = dyn_cast<CmpInst>(SI->getCondition());
1588 if (Pred == CmpInst::getSwappedPredicate(Cmp->getPredicate()) &&
1595 CmpInst::Predicate Pred,
1603 case CmpInst::ICMP_EQ:
1604 case CmpInst::ICMP_NE:
1609 case CmpInst::ICMP_UGT:
1610 case CmpInst::ICMP_UGE:
1611 case CmpInst::ICMP_ULT:
1612 case CmpInst::ICMP_ULE:
1638 CmpInst::Predicate Pred = (CmpInst::Predicate)Predicate;
1639 assert(CmpInst::isIntPredicate(Pred) && "Not an integer compare!");
1647 Pred = CmpInst::getSwappedPredicate(Pred);
1657 return ConstantInt::get(ITy, CmpInst::isTrueWhenEqual(Pred));
1706 return ConstantInt::get(ITy, CmpInst::isTrueWhenEqual(Pred));
1718 Pred == CmpInst::ICMP_EQ)
1724 Pred == CmpInst::ICMP_EQ)
1730 if (Pred == CmpInst::ICMP_EQ)
1732 CmpInst::ICMP_NE)
1739 if (Pred == CmpInst::ICMP_EQ)
1741 else if (Pred == CmpInst::ICMP_NE)
2034 (CmpInst::isUnsigned(Pred) && LBO->hasNoUnsignedWrap()) ||
2035 (CmpInst::isSigned(Pred) && LBO->hasNoSignedWrap());
2040 (CmpInst::isUnsigned(Pred) && RBO->hasNoUnsignedWrap()) ||
2041 (CmpInst::isSigned(Pred) && RBO->hasNoSignedWrap());
2167 CmpInst::Predicate P = CmpInst::BAD_ICMP_PREDICATE;
2168 CmpInst::Predicate EqP; // Chosen so that "A == max/min(A,B)" iff "A EqP B".
2173 EqP = CmpInst::ICMP_SGE; // "A == smax(A, B)" iff "A sge B".
2179 EqP = CmpInst::ICMP_SGE; // "A == smax(A, B)" iff "A sge B".
2181 P = CmpInst::getSwappedPredicate(Pred);
2185 EqP = CmpInst::ICMP_SLE; // "A == smin(A, B)" iff "A sle B".
2188 P = CmpInst::getSwappedPredicate(Pred);
2192 EqP = CmpInst::ICMP_SLE; // "A == smin(A, B)" iff "A sle B".
2197 if (P != CmpInst::BAD_ICMP_PREDICATE) {
2202 case CmpInst::ICMP_EQ:
2203 case CmpInst::ICMP_SLE:
2215 case CmpInst::ICMP_NE:
2216 case CmpInst::ICMP_SGT: {
2217 CmpInst::Predicate InvEqP = CmpInst::getInversePredicate(EqP);
2230 case CmpInst::ICMP_SGE:
2233 case CmpInst::ICMP_SLT:
2240 P = CmpInst::BAD_ICMP_PREDICATE;
2243 EqP = CmpInst::ICMP_UGE; // "A == umax(A, B)" iff "A uge B".
2249 EqP = CmpInst::ICMP_UGE; // "A == umax(A, B)" iff "A uge B".
2251 P = CmpInst::getSwappedPredicate(Pred);
2255 EqP = CmpInst::ICMP_ULE; // "A == umin(A, B)" iff "A ule B".
2258 P = CmpInst::getSwappedPredicate(Pred);
2262 EqP = CmpInst::ICMP_ULE; // "A == umin(A, B)" iff "A ule B".
2267 if (P != CmpInst::BAD_ICMP_PREDICATE) {
2272 case CmpInst::ICMP_EQ:
2273 case CmpInst::ICMP_ULE:
2285 case CmpInst::ICMP_NE:
2286 case CmpInst::ICMP_UGT: {
2287 CmpInst::Predicate InvEqP = CmpInst::getInversePredicate(EqP);
2300 case CmpInst::ICMP_UGE:
2303 case CmpInst::ICMP_ULT:
2315 if (Pred == CmpInst::ICMP_SGE)
2318 if (Pred == CmpInst::ICMP_SLT)
2325 if (Pred == CmpInst::ICMP_SLE)
2328 if (Pred == CmpInst::ICMP_SGT)
2335 if (Pred == CmpInst::ICMP_UGE)
2338 if (Pred == CmpInst::ICMP_ULT)
2345 if (Pred == CmpInst::ICMP_ULE)
2348 if (Pred == CmpInst::ICMP_UGT)
2407 CmpInst::Predicate Pred = (CmpInst::Predicate)Predicate;
2408 assert(CmpInst::isFPPredicate(Pred) && "Not an FP compare!");
2416 Pred = CmpInst::getSwappedPredicate(Pred);
2430 if (CmpInst::isTrueWhenEqual(Pred))
2432 if (CmpInst::isFalseWhenEqual(Pred))
2732 /// SimplifyCmpInst - Given operands for a CmpInst, see if we can
2736 if (CmpInst::isIntPredicate((CmpInst::Predicate)Predicate))