Lines Matching defs:Cmp
122 static Value *foldSelectICmpAnd(SelectInst &Sel, ICmpInst *Cmp,
131 if (SelType->isVectorTy() != Cmp->getType()->isVectorTy())
137 ICmpInst::Predicate Pred = Cmp->getPredicate();
139 if (!match(Cmp->getOperand(1), m_Zero()))
142 V = Cmp->getOperand(0);
148 } else if (decomposeBitTestICmp(Cmp->getOperand(0), Cmp->getOperand(1),
174 if (!Cmp->hasOneUse())
586 static Instruction *foldSelectICmpAndAnd(Type *SelType, const ICmpInst *Cmp,
589 if (!(Cmp->hasOneUse() && Cmp->getOperand(0)->hasOneUse() &&
590 Cmp->getPredicate() == ICmpInst::ICMP_EQ &&
591 match(Cmp->getOperand(1), m_Zero()) && match(FVal, m_One())))
616 if (!match(Cmp->getOperand(0), m_c_And(m_Specific(X), m_Value(Y))))
634 static Value *foldSelectICmpAndZeroShl(const ICmpInst *Cmp, Value *TVal,
639 if (!match(Cmp, m_ICmp(Pred, m_Value(AndVal), m_Zero())))
970 static Value *canonicalizeSaturatedAdd(ICmpInst *Cmp, Value *TVal, Value *FVal,
972 if (!Cmp->hasOneUse())
976 Value *Cmp0 = Cmp->getOperand(0);
977 Value *Cmp1 = Cmp->getOperand(1);
978 ICmpInst::Predicate Pred = Cmp->getPredicate();
1041 static Value *foldAbsDiff(ICmpInst *Cmp, Value *TVal, Value *FVal,
1049 ICmpInst::Predicate Pred = Cmp->getStrictPredicate();
1050 Value *A = Cmp->getOperand(0);
1051 Value *B = Cmp->getOperand(1);
1193 static Value *canonicalizeSPF(ICmpInst &Cmp, Value *TrueVal, Value *FalseVal,
1201 matchDecomposedSelectPattern(&Cmp, TrueVal, FalseVal, LHS, RHS).Flavor;
1204 if (!Cmp.hasOneUse() && !RHS->hasOneUse())
1211 ConstantInt::get(Type::getInt1Ty(Cmp.getContext()), IntMinIsPoison);
1287 ICmpInst &Cmp) {
1288 if (!Cmp.isEquality())
1294 if (Cmp.getPredicate() == ICmpInst::ICMP_NE) {
1299 Value *CmpLHS = Cmp.getOperand(0), *CmpRHS = Cmp.getOperand(1);
1337 !match(OldOp, m_Constant()) && !Cmp.getType()->isVectorTy() &&
1572 tryToReuseConstantFromSelectInComparison(SelectInst &Sel, ICmpInst &Cmp,
1577 if (!match(&Cmp, m_OneUse(m_ICmp(
1636 Cmp.getName() + ".inv");
1644 static Instruction *foldSelectZeroOrOnes(ICmpInst *Cmp, Value *TVal,
1647 if (!Cmp->hasOneUse())
1651 if (!match(Cmp->getOperand(1), m_APIntAllowPoison(CmpC)))
1655 Value *X = Cmp->getOperand(0);
1656 if (Cmp->getPredicate() == ICmpInst::ICMP_ULT && *CmpC == 2 &&
1661 if (Cmp->getPredicate() == ICmpInst::ICMP_UGT && *CmpC == 1 &&
2233 auto *Cmp = dyn_cast<CmpInst>(Cond);
2235 (!Cmp || Cmp->getOperand(0)->getType() != SmallType))
3822 Value *Cmp;
3824 Cmp = Builder.CreateICmp(MinMaxPred, LHS, RHS);
3830 Cmp = Builder.CreateFCmp(MinMaxPred, LHS, RHS);
3833 Value *NewSI = Builder.CreateSelect(Cmp, LHS, RHS, SI.getName(), &SI);
4048 if (ICmpInst *Cmp = dyn_cast<ICmpInst>(B))
4049 if (Value *V = canonicalizeSPF(*Cmp, TrueVal, FalseVal, *this))