Lines Matching refs:FalseVal

505                                                 Value *FalseVal) {  in foldSelectIntoOp()  argument
509 Value *FalseVal, in foldSelectIntoOp()
512 if (!TVI || !TVI->hasOneUse() || isa<Constant>(FalseVal)) in foldSelectIntoOp()
517 if ((SFO & 1) && FalseVal == TVI->getOperand(0)) in foldSelectIntoOp()
519 else if ((SFO & 2) && FalseVal == TVI->getOperand(1)) in foldSelectIntoOp()
546 BinaryOperator::Create(TVI->getOpcode(), FalseVal, NewSel); in foldSelectIntoOp()
553 if (Instruction *R = TryFoldSelectIntoOp(SI, TrueVal, FalseVal, false)) in foldSelectIntoOp()
556 if (Instruction *R = TryFoldSelectIntoOp(SI, FalseVal, TrueVal, true)) in foldSelectIntoOp()
657 Value *FalseVal, in foldSelectICmpLshrAshr() argument
677 std::swap(TrueVal, FalseVal); in foldSelectICmpLshrAshr()
680 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr()
682 const auto *Ashr = cast<Instruction>(FalseVal); in foldSelectICmpLshrAshr()
712 Value *FalseVal, in foldSelectICmpAndBinOp() argument
749 if (match(FalseVal, m_BinOp(m_Specific(TrueVal), m_Power2(C2)))) { in foldSelectICmpAndBinOp()
751 BinOp = cast<BinaryOperator>(FalseVal); in foldSelectICmpAndBinOp()
753 } else if (match(TrueVal, m_BinOp(m_Specific(FalseVal), m_Power2(C2)))) { in foldSelectICmpAndBinOp()
754 Y = FalseVal; in foldSelectICmpAndBinOp()
845 auto *FalseVal = SI.getFalseValue(); in foldSelectZeroOrMul() local
857 std::swap(TrueVal, FalseVal); in foldSelectZeroOrMul()
865 !match(FalseVal, m_c_Mul(m_Specific(X), m_Value(Y))) || in foldSelectZeroOrMul()
866 !isa<Instruction>(FalseVal)) in foldSelectZeroOrMul()
877 auto *FalseValI = cast<Instruction>(FalseVal); in foldSelectZeroOrMul()
889 const Value *FalseVal, in canonicalizeSaturatedSubtract() argument
899 std::swap(TrueVal, FalseVal); in canonicalizeSaturatedSubtract()
902 if (!match(FalseVal, m_Zero())) in canonicalizeSaturatedSubtract()
1076 Value *FalseVal, in foldSelectCtlzToCttz() argument
1083 std::swap(TrueVal, FalseVal); in foldSelectCtlzToCttz()
1086 if (!match(FalseVal, in foldSelectCtlzToCttz()
1118 static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal, in foldSelectCttzCtlz() argument
1128 Value *SelectArg = FalseVal; in foldSelectCttzCtlz()
1174 static Value *canonicalizeSPF(ICmpInst &Cmp, Value *TrueVal, Value *FalseVal, in canonicalizeSPF() argument
1182 matchDecomposedSelectPattern(&Cmp, TrueVal, FalseVal, LHS, RHS).Flavor; in canonicalizeSPF()
1270 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectValueEquivalence() local
1273 std::swap(TrueVal, FalseVal); in foldSelectValueEquivalence()
1312 auto *FalseInst = dyn_cast<Instruction>(FalseVal); in foldSelectValueEquivalence()
1325 if (simplifyWithOpReplaced(FalseVal, CmpLHS, CmpRHS, SQ, in foldSelectValueEquivalence()
1328 simplifyWithOpReplaced(FalseVal, CmpRHS, CmpLHS, SQ, in foldSelectValueEquivalence()
1336 return replaceInstUsesWith(Sel, FalseVal); in foldSelectValueEquivalence()
1705 Value *FalseVal = SI.getFalseValue(); in foldSelectInstWithICmp() local
1714 } else if (CmpLHS == FalseVal && Pred == ICmpInst::ICMP_NE) { in foldSelectInstWithICmp()
1726 !match(TrueVal, m_Constant()) && !match(FalseVal, m_Constant()) && in foldSelectInstWithICmp()
1767 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1770 else if (!TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1774 else if (TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1779 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1788 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1791 if (Value *V = foldSelectICmpAndZeroShl(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1794 if (Instruction *V = foldSelectCtlzToCttz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1797 if (Instruction *V = foldSelectZeroOrOnes(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1800 if (Value *V = foldSelectICmpAndBinOp(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1803 if (Value *V = foldSelectICmpLshrAshr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1806 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1809 if (Value *V = canonicalizeSaturatedSubtract(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1812 if (Value *V = canonicalizeSaturatedAdd(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1815 if (Value *V = foldAbsDiff(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1883 Value *FalseVal = SI.getFalseValue(); in foldAddSubSelect() local
1885 auto *FI = dyn_cast<Instruction>(FalseVal); in foldAddSubSelect()
1958 Value *FalseVal = SI.getFalseValue(); in foldOverflowingAddSubSelect() local
1962 !match(FalseVal, m_ExtractValue<0>(m_Specific(II)))) in foldOverflowingAddSubSelect()
1972 Value *TrueVal, *FalseVal, *Op; in foldOverflowingAddSubSelect() local
1975 m_Value(TrueVal), m_Value(FalseVal)))) in foldOverflowingAddSubSelect()
1995 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
2002 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
2008 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
2013 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
2018 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
2023 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
2582 Value *FalseVal = SI.getFalseValue(); in foldSelectWithSRem() local
2596 std::swap(TrueVal, FalseVal); in foldSelectWithSRem()
2612 FalseVal == RemRes) in foldSelectWithSRem()
2621 FalseVal == RemRes) in foldSelectWithSRem()
2633 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectWithFrozenICmp() local
2645 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2647 return Pred == ICmpInst::ICMP_EQ ? FalseVal : TrueVal; in foldSelectWithFrozenICmp()
2855 Value *FalseVal = nullptr; member
2872 m_Value(OuterSel.FalseVal))); in foldNestedSelects()
2876 std::swap(OuterSel.TrueVal, OuterSel.FalseVal); in foldNestedSelects()
2884 Value *InnerSelVal = IsAndVariant ? OuterSel.FalseVal : OuterSel.TrueVal; in foldNestedSelects()
2895 m_Value(InnerSel.FalseVal)))) in foldNestedSelects()
2900 std::swap(InnerSel.TrueVal, InnerSel.FalseVal); in foldNestedSelects()
2923 std::swap(InnerSel.TrueVal, InnerSel.FalseVal); in foldNestedSelects()
2929 AltCond, IsAndVariant ? OuterSel.TrueVal : InnerSel.FalseVal, in foldNestedSelects()
2930 IsAndVariant ? InnerSel.TrueVal : OuterSel.FalseVal); in foldNestedSelects()
2934 !IsAndVariant ? SelInner : InnerSel.FalseVal); in foldNestedSelects()
2940 Value *FalseVal = SI.getFalseValue(); in foldSelectOfBools() local
2958 if (impliesPoison(FalseVal, CondVal)) { in foldSelectOfBools()
2960 return BinaryOperator::CreateOr(CondVal, FalseVal); in foldSelectOfBools()
2964 if (auto *RHS = dyn_cast<FCmpInst>(FalseVal)) in foldSelectOfBools()
2971 match(FalseVal, m_LogicalAnd(m_Value(C), m_Value(D))) && in foldSelectOfBools()
2972 (CondVal->hasOneUse() || FalseVal->hasOneUse())) { in foldSelectOfBools()
2974 bool FalseLogicAnd = isa<SelectInst>(FalseVal); in foldSelectOfBools()
2998 if (match(FalseVal, m_Zero())) { in foldSelectOfBools()
3044 return SelectInst::Create(NotCond, FalseVal, Zero); in foldSelectOfBools()
3047 if (match(FalseVal, m_Specific(One))) { in foldSelectOfBools()
3062 (CondVal->hasOneUse() || FalseVal->hasOneUse()) && in foldSelectOfBools()
3068 match(TrueVal, m_One()) && match(FalseVal, m_Specific(B))) in foldSelectOfBools()
3072 match(TrueVal, m_Specific(B)) && match(FalseVal, m_Zero())) in foldSelectOfBools()
3083 Value *OrV = Builder.CreateSelect(C, One, FalseVal); in foldSelectOfBools()
3087 if (match(CondVal, m_OneUse(m_c_And(m_Value(C), m_Specific(FalseVal))))) { in foldSelectOfBools()
3090 return SelectInst::Create(FalseVal, OrV, Zero); in foldSelectOfBools()
3096 Value *AndV = Builder.CreateSelect(NotC, FalseVal, Zero); in foldSelectOfBools()
3102 m_OneUse(m_c_And(m_Value(C), m_Not(m_Specific(FalseVal)))))) { in foldSelectOfBools()
3104 return SelectInst::Create(FalseVal, One, AndV); in foldSelectOfBools()
3107 if (match(FalseVal, m_Zero()) || match(TrueVal, m_One())) { in foldSelectOfBools()
3109 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in foldSelectOfBools()
3110 Value *Op1 = IsAnd ? TrueVal : FalseVal; in foldSelectOfBools()
3134 match(FalseVal, m_Zero())) { in foldSelectOfBools()
3140 match(FalseVal, m_Zero())) { in foldSelectOfBools()
3149 match(FalseVal, m_LogicalAnd(m_Value(A), m_Value(B)))) { in foldSelectOfBools()
3156 std::optional<bool> Res = isImpliedCondition(FalseVal, B, DL, false); in foldSelectOfBools()
3168 if (match(FalseVal, m_c_LogicalAnd(m_Not(m_Value(C)), m_Value(B))) && in foldSelectOfBools()
3171 auto *SelFVal = dyn_cast<SelectInst>(FalseVal); in foldSelectOfBools()
3185 match(FalseVal, m_c_LogicalAnd(m_Specific(C), m_Value(B)))) { in foldSelectOfBools()
3187 auto *SelFVal = dyn_cast<SelectInst>(FalseVal); in foldSelectOfBools()
3300 Value *FalseVal = SI.getFalseValue(); in foldBitCeil() local
3309 std::swap(FalseVal, TrueVal); in foldBitCeil()
3315 if (!match(FalseVal, m_One()) || in foldBitCeil()
3348 Value *FalseVal, Instruction &CtxI, in matchFMulByZeroIfResultEqZero() argument
3366 Value *FalseVal = SI.getFalseValue(); in visitSelectInst() local
3369 if (Value *V = simplifySelectInst(CondVal, TrueVal, FalseVal, in visitSelectInst()
3390 if (Value *S = simplifyWithOpReplaced(FalseVal, CondVal, in visitSelectInst()
3411 if (match(TrueVal, m_One()) && match(FalseVal, m_Zero())) in visitSelectInst()
3415 if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero())) in visitSelectInst()
3419 if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) { in visitSelectInst()
3425 if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) { in visitSelectInst()
3437 if ((Cmp0 == TrueVal && Cmp1 == FalseVal) || in visitSelectInst()
3438 (Cmp0 == FalseVal && Cmp1 == TrueVal)) { in visitSelectInst()
3451 Value *NewSel = Builder.CreateSelect(NewCond, FalseVal, TrueVal); in visitSelectInst()
3476 MatchCmp0 = FalseVal; in visitSelectInst()
3480 MatchCmp1 = FalseVal; in visitSelectInst()
3527 auto *FI = dyn_cast<Instruction>(FalseVal); in visitSelectInst()
3561 if (auto *NewGep = SelectGepWithBase(TrueGep, FalseVal, false)) in visitSelectInst()
3563 if (auto *FalseGep = dyn_cast<GetElementPtrInst>(FalseVal)) in visitSelectInst()
3569 if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal)) in visitSelectInst()
3627 canSelectOperandBeMappingIntoPredBlock(FalseVal, SI)) in visitSelectInst()
3643 if (TrueSI->getFalseValue() == FalseVal && TrueSI->hasOneUse()) { in visitSelectInst()
3651 if (SelectInst *FalseSI = dyn_cast<SelectInst>(FalseVal)) { in visitSelectInst()
3695 if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) && !FalseBO->isIntDivRem()) { in visitSelectInst()
3735 return replaceInstUsesWith(SI, FalseVal); in visitSelectInst()
3765 if (match(FalseVal, m_Zero()) && in visitSelectInst()
3772 MaskedInst->setArgOperand(3, FalseVal /* Zero */); in visitSelectInst()
3778 (match(FalseVal, m_MaskedLoad(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
3780 match(FalseVal, m_MaskedGather(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
3792 auto *MaskedInst = cast<IntrinsicInst>(FalseVal); in visitSelectInst()
3819 if (Value *V = simplifySelectInst(B, TrueVal, FalseVal, in visitSelectInst()
3821 return SelectInst::Create(A, IsAnd ? V : TrueVal, IsAnd ? FalseVal : V); in visitSelectInst()
3826 if (Value *V = canonicalizeSPF(*Cmp, TrueVal, FalseVal, *this)) in visitSelectInst()
3828 IsAnd ? FalseVal : V); in visitSelectInst()