Lines Matching refs:ICI
903 static Value *canonicalizeSaturatedSubtract(const ICmpInst *ICI, in canonicalizeSaturatedSubtract() argument
907 ICmpInst::Predicate Pred = ICI->getPredicate(); in canonicalizeSaturatedSubtract()
908 Value *A = ICI->getOperand(0); in canonicalizeSaturatedSubtract()
909 Value *B = ICI->getOperand(1); in canonicalizeSaturatedSubtract()
959 if (IsNegative && !TrueVal->hasOneUse() && !ICI->hasOneUse()) in canonicalizeSaturatedSubtract()
1091 static Instruction *foldSelectCtlzToCttz(ICmpInst *ICI, Value *TrueVal, in foldSelectCtlzToCttz() argument
1095 if (!ICI->isEquality() || !match(ICI->getOperand(1), m_Zero())) in foldSelectCtlzToCttz()
1098 if (ICI->getPredicate() == ICmpInst::ICMP_NE) in foldSelectCtlzToCttz()
1112 Value *X = ICI->getOperand(0); in foldSelectCtlzToCttz()
1134 static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal, in foldSelectCttzCtlz() argument
1136 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectCttzCtlz()
1137 Value *CmpLHS = ICI->getOperand(0); in foldSelectCttzCtlz()
1138 Value *CmpRHS = ICI->getOperand(1); in foldSelectCttzCtlz()
1141 if (!ICI->isEquality()) in foldSelectCttzCtlz()
1668 static Value *foldSelectInstWithICmpConst(SelectInst &SI, ICmpInst *ICI, in foldSelectInstWithICmpConst() argument
1673 if (!match(ICI, m_ICmp(Pred, m_Value(V), m_APInt(CmpC)))) in foldSelectInstWithICmpConst()
1697 if (match(&SI, m_Select(m_Specific(ICI), m_APInt(C), m_BinOp(BO)))) in foldSelectInstWithICmpConst()
1698 CPred = ICI->getPredicate(); in foldSelectInstWithICmpConst()
1699 else if (match(&SI, m_Select(m_Specific(ICI), m_BinOp(BO), m_APInt(C)))) in foldSelectInstWithICmpConst()
1700 CPred = ICI->getInversePredicate(); in foldSelectInstWithICmpConst()
1717 static Instruction *foldSelectICmpEq(SelectInst &SI, ICmpInst *ICI, in foldSelectICmpEq() argument
1719 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectICmpEq()
1725 Value *CmpLHS = ICI->getOperand(0); in foldSelectICmpEq()
1726 Value *CmpRHS = ICI->getOperand(1); in foldSelectICmpEq()
1822 ICmpInst *ICI) { in foldSelectInstWithICmp() argument
1823 if (Instruction *NewSel = foldSelectValueEquivalence(SI, *ICI)) in foldSelectInstWithICmp()
1827 canonicalizeSPF(*ICI, SI.getTrueValue(), SI.getFalseValue(), *this)) in foldSelectInstWithICmp()
1830 if (Value *V = foldSelectInstWithICmpConst(SI, ICI, Builder)) in foldSelectInstWithICmp()
1833 if (Value *V = canonicalizeClampLike(SI, *ICI, Builder, *this)) in foldSelectInstWithICmp()
1837 tryToReuseConstantFromSelectInComparison(SI, *ICI, *this)) in foldSelectInstWithICmp()
1840 if (Value *V = foldSelectICmpAnd(SI, ICI, Builder)) in foldSelectInstWithICmp()
1847 ICmpInst::Predicate Pred = ICI->getPredicate(); in foldSelectInstWithICmp()
1848 Value *CmpLHS = ICI->getOperand(0); in foldSelectInstWithICmp()
1849 Value *CmpRHS = ICI->getOperand(1); in foldSelectInstWithICmp()
1862 if (Instruction *NewSel = foldSelectICmpEq(SI, ICI, *this)) in foldSelectInstWithICmp()
1871 ICI->hasOneUse()) { in foldSelectInstWithICmp()
1874 Value *IsNeg = Builder.CreateIsNeg(CmpLHS, ICI->getName()); in foldSelectInstWithICmp()
1932 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1935 if (Value *V = foldSelectICmpAndZeroShl(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1938 if (Instruction *V = foldSelectCtlzToCttz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1941 if (Instruction *V = foldSelectZeroOrOnes(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1944 if (Value *V = foldSelectICmpAndBinOp(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1947 if (Value *V = foldSelectICmpLshrAshr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1950 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, *this)) in foldSelectInstWithICmp()
1953 if (Value *V = canonicalizeSaturatedSubtract(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1956 if (Value *V = canonicalizeSaturatedAdd(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1959 if (Value *V = foldAbsDiff(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
3733 if (ICmpInst *ICI = dyn_cast<ICmpInst>(CondVal)) in visitSelectInst() local
3734 if (Instruction *Result = foldSelectInstWithICmp(SI, ICI)) in visitSelectInst()