Lines Matching defs:CmpInst

3455 //                               CmpInst Classes
3458 CmpInst::CmpInst(Type *ty, OtherOps op, Predicate predicate, Value *LHS,
3470 CmpInst *CmpInst::Create(OtherOps Op, Predicate predicate, Value *S1, Value *S2,
3474 return new ICmpInst(InsertBefore, CmpInst::Predicate(predicate),
3477 return new ICmpInst(CmpInst::Predicate(predicate),
3482 return new FCmpInst(InsertBefore, CmpInst::Predicate(predicate),
3485 return new FCmpInst(CmpInst::Predicate(predicate),
3489 CmpInst *CmpInst::CreateWithCopiedFlags(OtherOps Op, Predicate Pred, Value *S1,
3494 CmpInst *Inst = Create(Op, Pred, S1, S2, Name, InsertBefore);
3499 void CmpInst::swapOperands() {
3506 bool CmpInst::isCommutative() const {
3512 bool CmpInst::isEquality(Predicate P) {
3520 // Returns true if either operand of CmpInst is a provably non-zero
3522 static bool hasNonZeroFPOperands(const CmpInst *Cmp) {
3535 bool CmpInst::isEquivalence(bool Invert) const {
3537 case CmpInst::Predicate::ICMP_EQ:
3539 case CmpInst::Predicate::FCMP_UEQ:
3543 case CmpInst::Predicate::FCMP_OEQ:
3550 CmpInst::Predicate CmpInst::getInversePredicate(Predicate pred) {
3583 StringRef CmpInst::getPredicateName(Predicate Pred) {
3615 raw_ostream &llvm::operator<<(raw_ostream &OS, CmpInst::Predicate Pred) {
3616 OS << CmpInst::getPredicateName(Pred);
3646 CmpInst::Predicate CmpInst::getSwappedPredicate(Predicate pred) {
3676 bool CmpInst::isNonStrictPredicate(Predicate pred) {
3692 bool CmpInst::isStrictPredicate(Predicate pred) {
3708 CmpInst::Predicate CmpInst::getStrictPredicate(Predicate pred) {
3731 CmpInst::Predicate CmpInst::getNonStrictPredicate(Predicate pred) {
3754 CmpInst::Predicate CmpInst::getFlippedStrictnessPredicate(Predicate pred) {
3755 assert(CmpInst::isRelational(pred) && "Call only with relational predicate!");
3765 bool CmpInst::isUnsigned(Predicate predicate) {
3773 bool CmpInst::isSigned(Predicate predicate) {
3880 CmpInst::Predicate ICmpInst::getFlippedSignednessPredicate(Predicate pred) {
3881 if (CmpInst::isEquality(pred))
3891 bool CmpInst::isOrdered(Predicate predicate) {
3900 bool CmpInst::isUnordered(Predicate predicate) {
3909 bool CmpInst::isTrueWhenEqual(Predicate predicate) {
3917 bool CmpInst::isFalseWhenEqual(Predicate predicate) {
3931 if (Pred1.hasSameSign() && CmpInst::isSigned(Pred2))
3933 else if (Pred2.hasSameSign() && CmpInst::isSigned(Pred1))
3939 case CmpInst::ICMP_EQ:
3941 return Pred2 == CmpInst::ICMP_UGE || Pred2 == CmpInst::ICMP_ULE ||
3942 Pred2 == CmpInst::ICMP_SGE || Pred2 == CmpInst::ICMP_SLE;
3943 case CmpInst::ICMP_UGT: // A >u B implies A != B and A >=u B are true.
3944 return Pred2 == CmpInst::ICMP_NE || Pred2 == CmpInst::ICMP_UGE;
3945 case CmpInst::ICMP_ULT: // A <u B implies A != B and A <=u B are true.
3946 return Pred2 == CmpInst::ICMP_NE || Pred2 == CmpInst::ICMP_ULE;
3947 case CmpInst::ICMP_SGT: // A >s B implies A != B and A >=s B are true.
3948 return Pred2 == CmpInst::ICMP_NE || Pred2 == CmpInst::ICMP_SGE;
3949 case CmpInst::ICMP_SLT: // A <s B implies A != B and A <=s B are true.
3950 return Pred2 == CmpInst::ICMP_NE || Pred2 == CmpInst::ICMP_SLE;
3978 if (CmpInst::isFPPredicate(A) || CmpInst::isFPPredicate(B))
3989 CmpInst::Predicate CmpPredicate::getPreferredSignedPredicate() const {
3993 CmpPredicate CmpPredicate::get(const CmpInst *Cmp) {
4000 return {CmpInst::getSwappedPredicate(P), P.hasSameSign()};
4003 CmpPredicate CmpPredicate::getSwapped(const CmpInst *Cmp) {