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