Lines Matching refs:TrueVal

413 Instruction *InstCombiner::foldSelectIntoOp(SelectInst &SI, Value *TrueVal,  in foldSelectIntoOp()  argument
417 if (auto *TVI = dyn_cast<BinaryOperator>(TrueVal)) { in foldSelectIntoOp()
449 if (FVI->hasOneUse() && !isa<Constant>(TrueVal)) { in foldSelectIntoOp()
452 if ((SFO & 1) && TrueVal == FVI->getOperand(0)) { in foldSelectIntoOp()
454 } else if ((SFO & 2) && TrueVal == FVI->getOperand(1)) { in foldSelectIntoOp()
470 TrueVal, NewSel); in foldSelectIntoOp()
536 static Value *foldSelectICmpAndOr(const ICmpInst *IC, Value *TrueVal, in foldSelectICmpAndOr() argument
541 if (!TrueVal->getType()->isIntOrIntVectorTy() || in foldSelectICmpAndOr()
542 TrueVal->getType()->isVectorTy() != IC->getType()->isVectorTy()) in foldSelectICmpAndOr()
583 bool OrOnFalseVal = match(FalseVal, m_Or(m_Specific(TrueVal), m_Power2(C2))); in foldSelectICmpAndOr()
585 OrOnTrueVal = match(TrueVal, m_Or(m_Specific(FalseVal), m_Power2(C2))); in foldSelectICmpAndOr()
590 Value *Y = OrOnFalseVal ? TrueVal : FalseVal; in foldSelectICmpAndOr()
600 Value *Or = OrOnFalseVal ? FalseVal : TrueVal; in foldSelectICmpAndOr()
634 const Value *TrueVal, in canonicalizeSaturatedSubtract() argument
642 if (match(TrueVal, m_Zero())) { in canonicalizeSaturatedSubtract()
644 std::swap(TrueVal, FalseVal); in canonicalizeSaturatedSubtract()
662 if (match(TrueVal, m_Sub(m_Specific(B), m_Specific(A)))) in canonicalizeSaturatedSubtract()
664 else if (!match(TrueVal, m_Sub(m_Specific(A), m_Specific(B)))) in canonicalizeSaturatedSubtract()
669 if (!TrueVal->hasOneUse()) in canonicalizeSaturatedSubtract()
691 static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal, in foldSelectCttzCtlz() argument
702 Value *ValueOnZero = TrueVal; in foldSelectCttzCtlz()
747 Value *TrueVal = Sel.getTrueValue(); in adjustMinMax() local
772 if ((CmpLHS == TrueVal && AdjustedRHS == FalseVal) || in adjustMinMax()
773 (CmpLHS == FalseVal && AdjustedRHS == TrueVal)) { in adjustMinMax()
786 if (match(TrueVal, m_SExt(m_Specific(CmpLHS))) && SextRHS == FalseVal) { in adjustMinMax()
787 CmpLHS = TrueVal; in adjustMinMax()
790 SextRHS == TrueVal) { in adjustMinMax()
799 if (match(TrueVal, m_ZExt(m_Specific(CmpLHS))) && ZextRHS == FalseVal) { in adjustMinMax()
800 CmpLHS = TrueVal; in adjustMinMax()
803 ZextRHS == TrueVal) { in adjustMinMax()
818 std::swap(FalseVal, TrueVal); in adjustMinMax()
822 Sel.setOperand(1, TrueVal); in adjustMinMax()
959 Value *TrueVal = SI.getTrueValue(); in foldSelectInstWithICmp() local
978 if (CmpLHS == TrueVal && Pred == ICmpInst::ICMP_EQ) { in foldSelectInstWithICmp()
993 DL.getTypeSizeInBits(TrueVal->getType()->getScalarType()); in foldSelectInstWithICmp()
1018 if (TrueWhenUnset && TrueVal == X && in foldSelectInstWithICmp()
1023 match(TrueVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1027 match(TrueVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1030 else if (!TrueWhenUnset && TrueVal == X && in foldSelectInstWithICmp()
1040 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1043 if (Value *V = foldSelectICmpAndOr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1046 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1049 if (Value *V = canonicalizeSaturatedSubtract(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1214 Value *TrueVal = SI.getTrueValue(); in foldAddSubSelect() local
1216 auto *TI = dyn_cast<Instruction>(TrueVal); in foldAddSubSelect()
1612 Value *TrueVal = SI.getTrueValue(); in visitSelectInst() local
1621 if (isa<UndefValue>(TrueVal) || isa<UndefValue>(FalseVal)) { in visitSelectInst()
1632 if (Value *V = SimplifySelectInst(CondVal, TrueVal, FalseVal, in visitSelectInst()
1650 SI.setOperand(2, TrueVal); in visitSelectInst()
1657 TrueVal->getType() == CondVal->getType()) { in visitSelectInst()
1658 if (match(TrueVal, m_One())) { in visitSelectInst()
1662 if (match(TrueVal, m_Zero())) { in visitSelectInst()
1669 return BinaryOperator::CreateAnd(CondVal, TrueVal); in visitSelectInst()
1674 return BinaryOperator::CreateOr(NotCond, TrueVal); in visitSelectInst()
1679 if (CondVal == TrueVal) in visitSelectInst()
1682 return BinaryOperator::CreateAnd(CondVal, TrueVal); in visitSelectInst()
1686 if (match(TrueVal, m_Not(m_Specific(CondVal)))) in visitSelectInst()
1687 return BinaryOperator::CreateAnd(TrueVal, FalseVal); in visitSelectInst()
1689 return BinaryOperator::CreateOr(TrueVal, FalseVal); in visitSelectInst()
1701 if (match(TrueVal, m_One()) && match(FalseVal, m_Zero())) in visitSelectInst()
1705 if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero())) in visitSelectInst()
1709 if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) { in visitSelectInst()
1715 if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) { in visitSelectInst()
1723 if (FCI->getOperand(0) == TrueVal && FCI->getOperand(1) == FalseVal) { in visitSelectInst()
1733 Value *NewCond = Builder.CreateFCmp(InvPred, TrueVal, FalseVal, in visitSelectInst()
1736 return SelectInst::Create(NewCond, FalseVal, TrueVal, in visitSelectInst()
1741 } else if (FCI->getOperand(0) == FalseVal && FCI->getOperand(1) == TrueVal){ in visitSelectInst()
1751 Value *NewCond = Builder.CreateFCmp(InvPred, FalseVal, TrueVal, in visitSelectInst()
1754 return SelectInst::Create(NewCond, FalseVal, TrueVal, in visitSelectInst()
1771 match(TrueVal, m_FSub(m_PosZeroFP(), m_Specific(X)))) || in visitSelectInst()
1772 (X == TrueVal && Pred == FCmpInst::FCMP_OGT && in visitSelectInst()
1783 ((X == FalseVal && match(TrueVal, m_FNeg(m_Specific(X))) && in visitSelectInst()
1785 (X == TrueVal && match(FalseVal, m_FNeg(m_Specific(X))) && in visitSelectInst()
1802 auto *TI = dyn_cast<Instruction>(TrueVal); in visitSelectInst()
1813 if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal)) in visitSelectInst()
1906 if (canSelectOperandBeMappingIntoPredBlock(TrueVal, SI) && in visitSelectInst()
1911 if (SelectInst *TrueSI = dyn_cast<SelectInst>(TrueVal)) { in visitSelectInst()
1941 if (FalseSI->getTrueValue() == TrueVal && FalseSI->hasOneUse()) { in visitSelectInst()
1967 if (match(TrueVal, m_OneUse(m_BinOp(TrueBO))) && in visitSelectInst()
2009 SI.setOperand(2, TrueVal); in visitSelectInst()
2034 return replaceInstUsesWith(SI, TrueVal); in visitSelectInst()