Lines Matching refs:FalseVal
439 Value *FalseVal) { in foldSelectIntoOp() argument
443 Value *FalseVal, in foldSelectIntoOp()
446 if (TVI->hasOneUse() && !isa<Constant>(FalseVal)) { in foldSelectIntoOp()
449 if ((SFO & 1) && FalseVal == TVI->getOperand(0)) in foldSelectIntoOp()
451 else if ((SFO & 2) && FalseVal == TVI->getOperand(1)) in foldSelectIntoOp()
476 BinaryOperator::Create(TVI->getOpcode(), FalseVal, NewSel); in foldSelectIntoOp()
487 if (Instruction *R = TryFoldSelectIntoOp(SI, TrueVal, FalseVal, false)) in foldSelectIntoOp()
490 if (Instruction *R = TryFoldSelectIntoOp(SI, FalseVal, TrueVal, true)) in foldSelectIntoOp()
553 Value *FalseVal, in foldSelectICmpLshrAshr() argument
573 std::swap(TrueVal, FalseVal); in foldSelectICmpLshrAshr()
576 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr()
578 const auto *Ashr = cast<Instruction>(FalseVal); in foldSelectICmpLshrAshr()
601 Value *FalseVal, in foldSelectICmpAndOr() argument
647 bool OrOnFalseVal = match(FalseVal, m_Or(m_Specific(TrueVal), m_Power2(C2))); in foldSelectICmpAndOr()
649 OrOnTrueVal = match(TrueVal, m_Or(m_Specific(FalseVal), m_Power2(C2))); in foldSelectICmpAndOr()
654 Value *Y = OrOnFalseVal ? TrueVal : FalseVal; in foldSelectICmpAndOr()
664 Value *Or = OrOnFalseVal ? FalseVal : TrueVal; in foldSelectICmpAndOr()
735 auto *FalseVal = SI.getFalseValue(); in foldSelectZeroOrMul() local
747 std::swap(TrueVal, FalseVal); in foldSelectZeroOrMul()
755 !match(FalseVal, m_c_Mul(m_Specific(X), m_Value(Y))) || in foldSelectZeroOrMul()
756 !isa<Instruction>(FalseVal)) in foldSelectZeroOrMul()
767 auto *FalseValI = cast<Instruction>(FalseVal); in foldSelectZeroOrMul()
779 const Value *FalseVal, in canonicalizeSaturatedSubtract() argument
788 std::swap(TrueVal, FalseVal); in canonicalizeSaturatedSubtract()
790 if (!match(FalseVal, m_Zero())) in canonicalizeSaturatedSubtract()
911 Value *FalseVal, in foldSelectCtlzToCttz() argument
918 std::swap(TrueVal, FalseVal); in foldSelectCtlzToCttz()
920 if (!match(FalseVal, in foldSelectCtlzToCttz()
949 static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal, in foldSelectCttzCtlz() argument
959 Value *SelectArg = FalseVal; in foldSelectCttzCtlz()
1006 Value *FalseVal = Sel.getFalseValue(); in adjustMinMax() local
1030 if ((CmpLHS == TrueVal && AdjustedRHS == FalseVal) || in adjustMinMax()
1031 (CmpLHS == FalseVal && AdjustedRHS == TrueVal)) { in adjustMinMax()
1044 if (match(TrueVal, m_SExt(m_Specific(CmpLHS))) && SextRHS == FalseVal) { in adjustMinMax()
1047 } else if (match(FalseVal, m_SExt(m_Specific(CmpLHS))) && in adjustMinMax()
1049 CmpLHS = FalseVal; in adjustMinMax()
1057 if (match(TrueVal, m_ZExt(m_Specific(CmpLHS))) && ZextRHS == FalseVal) { in adjustMinMax()
1060 } else if (match(FalseVal, m_ZExt(m_Specific(CmpLHS))) && in adjustMinMax()
1062 CmpLHS = FalseVal; in adjustMinMax()
1076 std::swap(FalseVal, TrueVal); in adjustMinMax()
1081 Sel.setOperand(2, FalseVal); in adjustMinMax()
1167 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectValueEquivalence() local
1170 std::swap(TrueVal, FalseVal); in foldSelectValueEquivalence()
1208 auto *FalseInst = dyn_cast<Instruction>(FalseVal); in foldSelectValueEquivalence()
1216 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(FalseVal)) { in foldSelectValueEquivalence()
1222 if (auto *PEO = dyn_cast<PossiblyExactOperator>(FalseVal)) { in foldSelectValueEquivalence()
1226 if (auto *GEP = dyn_cast<GetElementPtrInst>(FalseVal)) { in foldSelectValueEquivalence()
1235 if (simplifyWithOpReplaced(FalseVal, CmpLHS, CmpRHS, SQ, in foldSelectValueEquivalence()
1237 simplifyWithOpReplaced(FalseVal, CmpRHS, CmpLHS, SQ, in foldSelectValueEquivalence()
1239 return replaceInstUsesWith(Sel, FalseVal); in foldSelectValueEquivalence()
1594 Value *FalseVal = SI.getFalseValue(); in foldSelectInstWithICmp() local
1603 } else if (CmpLHS == FalseVal && Pred == ICmpInst::ICMP_NE) { in foldSelectInstWithICmp()
1615 !match(TrueVal, m_Constant()) && !match(FalseVal, m_Constant()) && in foldSelectInstWithICmp()
1656 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1659 else if (!TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1663 else if (TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1668 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1677 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1680 if (Instruction *V = foldSelectCtlzToCttz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1683 if (Instruction *V = foldSelectZeroOrOnes(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1686 if (Value *V = foldSelectICmpAndOr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1689 if (Value *V = foldSelectICmpLshrAshr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1692 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1695 if (Value *V = canonicalizeSaturatedSubtract(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1698 if (Value *V = canonicalizeSaturatedAdd(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1766 Value *FalseVal = SI.getFalseValue(); in foldAddSubSelect() local
1768 auto *FI = dyn_cast<Instruction>(FalseVal); in foldAddSubSelect()
1841 Value *FalseVal = SI.getFalseValue(); in foldOverflowingAddSubSelect() local
1845 !match(FalseVal, m_ExtractValue<0>(m_Specific(II)))) in foldOverflowingAddSubSelect()
1855 Value *TrueVal, *FalseVal, *Op; in foldOverflowingAddSubSelect() local
1858 m_Value(TrueVal), m_Value(FalseVal)))) in foldOverflowingAddSubSelect()
1878 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
1885 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1891 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
1896 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1901 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1906 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
2445 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectWithFrozenICmp() local
2457 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2459 return Pred == ICmpInst::ICMP_EQ ? FalseVal : TrueVal; in foldSelectWithFrozenICmp()
2641 Value *FalseVal = SI.getFalseValue(); in visitSelectInst() local
2644 if (Value *V = simplifySelectInst(CondVal, TrueVal, FalseVal, in visitSelectInst()
2663 if (impliesPoison(FalseVal, CondVal)) { in visitSelectInst()
2665 return BinaryOperator::CreateOr(CondVal, FalseVal); in visitSelectInst()
2669 if (auto *RHS = dyn_cast<FCmpInst>(FalseVal)) in visitSelectInst()
2674 if (match(FalseVal, m_Zero())) { in visitSelectInst()
2695 return SelectInst::Create(NotCond, FalseVal, Zero); in visitSelectInst()
2698 if (match(FalseVal, m_Specific(One))) { in visitSelectInst()
2707 if (CondVal == FalseVal) in visitSelectInst()
2712 return SelectInst::Create(TrueVal, FalseVal, Zero); in visitSelectInst()
2714 if (match(FalseVal, m_Not(m_Specific(CondVal)))) in visitSelectInst()
2715 return SelectInst::Create(FalseVal, One, TrueVal); in visitSelectInst()
2729 (CondVal->hasOneUse() || FalseVal->hasOneUse()) && in visitSelectInst()
2735 match(TrueVal, m_One()) && match(FalseVal, m_Specific(B))) in visitSelectInst()
2739 match(TrueVal, m_Specific(B)) && match(FalseVal, m_Zero())) in visitSelectInst()
2746 FalseVal = Builder.CreateFreeze(FalseVal); in visitSelectInst()
2747 return BinaryOperator::CreateAnd(TrueVal, Builder.CreateOr(C, FalseVal)); in visitSelectInst()
2750 if (match(CondVal, m_c_And(m_Not(m_Value(C)), m_Specific(FalseVal))) && in visitSelectInst()
2753 return BinaryOperator::CreateAnd(FalseVal, Builder.CreateOr(C, TrueVal)); in visitSelectInst()
2760 if (Value *S = simplifyWithOpReplaced(FalseVal, CondVal, Zero, SQ, in visitSelectInst()
2765 if (match(FalseVal, m_Zero()) || match(TrueVal, m_One())) { in visitSelectInst()
2767 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in visitSelectInst()
2768 Value *Op1 = IsAnd ? TrueVal : FalseVal; in visitSelectInst()
2792 match(FalseVal, m_Zero())) { in visitSelectInst()
2798 match(FalseVal, m_Zero())) { in visitSelectInst()
2807 match(FalseVal, m_Select(m_Value(A), m_Value(B), m_Zero()))) { in visitSelectInst()
2814 Optional<bool> Res = isImpliedCondition(FalseVal, B, DL, false); in visitSelectInst()
2824 match(FalseVal, m_Select(m_Value(C2), m_Value(B), m_Zero()))) { in visitSelectInst()
2844 if (match(TrueVal, m_One()) && match(FalseVal, m_Zero())) in visitSelectInst()
2848 if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero())) in visitSelectInst()
2852 if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) { in visitSelectInst()
2858 if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) { in visitSelectInst()
2867 if ((Cmp0 == TrueVal && Cmp1 == FalseVal) || in visitSelectInst()
2868 (Cmp0 == FalseVal && Cmp1 == TrueVal)) { in visitSelectInst()
2881 Value *NewSel = Builder.CreateSelect(NewCond, FalseVal, TrueVal); in visitSelectInst()
2909 auto *FI = dyn_cast<Instruction>(FalseVal); in visitSelectInst()
2938 if (auto *NewGep = SelectGepWithBase(TrueGep, FalseVal, false)) in visitSelectInst()
2940 if (auto *FalseGep = dyn_cast<GetElementPtrInst>(FalseVal)) in visitSelectInst()
2946 if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal)) in visitSelectInst()
3017 canSelectOperandBeMappingIntoPredBlock(FalseVal, SI)) in visitSelectInst()
3033 if (TrueSI->getFalseValue() == FalseVal && TrueSI->hasOneUse()) { in visitSelectInst()
3041 if (SelectInst *FalseSI = dyn_cast<SelectInst>(FalseVal)) { in visitSelectInst()
3096 if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) && in visitSelectInst()
3137 return replaceInstUsesWith(SI, FalseVal); in visitSelectInst()
3167 if (match(FalseVal, m_Zero()) && in visitSelectInst()
3174 MaskedInst->setArgOperand(3, FalseVal /* Zero */); in visitSelectInst()
3180 (match(FalseVal, m_MaskedLoad(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
3182 match(FalseVal, m_MaskedGather(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
3194 auto *MaskedInst = cast<IntrinsicInst>(FalseVal); in visitSelectInst()