Lines Matching refs:FalseVal
432 Value *FalseVal) { in foldSelectIntoOp() argument
436 if (TVI->hasOneUse() && !isa<Constant>(FalseVal)) { in foldSelectIntoOp()
439 if ((SFO & 1) && FalseVal == TVI->getOperand(0)) { in foldSelectIntoOp()
441 } else if ((SFO & 2) && FalseVal == TVI->getOperand(1)) { in foldSelectIntoOp()
458 FalseVal, NewSel); in foldSelectIntoOp()
467 if (auto *FVI = dyn_cast<BinaryOperator>(FalseVal)) { in foldSelectIntoOp()
549 Value *FalseVal, in foldSelectICmpLshrAshr() argument
569 std::swap(TrueVal, FalseVal); in foldSelectICmpLshrAshr()
572 match(FalseVal, m_AShr(m_Specific(X), m_Specific(Y))) && in foldSelectICmpLshrAshr()
574 const auto *Ashr = cast<Instruction>(FalseVal); in foldSelectICmpLshrAshr()
597 Value *FalseVal, in foldSelectICmpAndOr() argument
643 bool OrOnFalseVal = match(FalseVal, m_Or(m_Specific(TrueVal), m_Power2(C2))); in foldSelectICmpAndOr()
645 OrOnTrueVal = match(TrueVal, m_Or(m_Specific(FalseVal), m_Power2(C2))); in foldSelectICmpAndOr()
650 Value *Y = OrOnFalseVal ? TrueVal : FalseVal; in foldSelectICmpAndOr()
660 Value *Or = OrOnFalseVal ? FalseVal : TrueVal; in foldSelectICmpAndOr()
723 const Value *FalseVal, in canonicalizeSaturatedSubtract() argument
732 std::swap(TrueVal, FalseVal); in canonicalizeSaturatedSubtract()
734 if (!match(FalseVal, m_Zero())) in canonicalizeSaturatedSubtract()
855 Value *FalseVal, in foldSelectCtlzToCttz() argument
862 std::swap(TrueVal, FalseVal); in foldSelectCtlzToCttz()
864 if (!match(FalseVal, in foldSelectCtlzToCttz()
893 static Value *foldSelectCttzCtlz(ICmpInst *ICI, Value *TrueVal, Value *FalseVal, in foldSelectCttzCtlz() argument
903 Value *SelectArg = FalseVal; in foldSelectCttzCtlz()
950 Value *FalseVal = Sel.getFalseValue(); in adjustMinMax() local
974 if ((CmpLHS == TrueVal && AdjustedRHS == FalseVal) || in adjustMinMax()
975 (CmpLHS == FalseVal && AdjustedRHS == TrueVal)) { in adjustMinMax()
988 if (match(TrueVal, m_SExt(m_Specific(CmpLHS))) && SextRHS == FalseVal) { in adjustMinMax()
991 } else if (match(FalseVal, m_SExt(m_Specific(CmpLHS))) && in adjustMinMax()
993 CmpLHS = FalseVal; in adjustMinMax()
1001 if (match(TrueVal, m_ZExt(m_Specific(CmpLHS))) && ZextRHS == FalseVal) { in adjustMinMax()
1004 } else if (match(FalseVal, m_ZExt(m_Specific(CmpLHS))) && in adjustMinMax()
1006 CmpLHS = FalseVal; in adjustMinMax()
1020 std::swap(FalseVal, TrueVal); in adjustMinMax()
1025 Sel.setOperand(2, FalseVal); in adjustMinMax()
1130 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectValueEquivalence() local
1133 std::swap(TrueVal, FalseVal); in foldSelectValueEquivalence()
1171 auto *FalseInst = dyn_cast<Instruction>(FalseVal); in foldSelectValueEquivalence()
1179 if (auto *OBO = dyn_cast<OverflowingBinaryOperator>(FalseVal)) { in foldSelectValueEquivalence()
1185 if (auto *PEO = dyn_cast<PossiblyExactOperator>(FalseVal)) { in foldSelectValueEquivalence()
1189 if (auto *GEP = dyn_cast<GetElementPtrInst>(FalseVal)) { in foldSelectValueEquivalence()
1198 if (simplifyWithOpReplaced(FalseVal, CmpLHS, CmpRHS, SQ, in foldSelectValueEquivalence()
1200 simplifyWithOpReplaced(FalseVal, CmpRHS, CmpLHS, SQ, in foldSelectValueEquivalence()
1202 return replaceInstUsesWith(Sel, FalseVal); in foldSelectValueEquivalence()
1463 Value *FalseVal = SI.getFalseValue(); in foldSelectInstWithICmp() local
1472 } else if (CmpLHS == FalseVal && Pred == ICmpInst::ICMP_NE) { in foldSelectInstWithICmp()
1509 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1512 else if (!TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1516 else if (TrueWhenUnset && FalseVal == X && in foldSelectInstWithICmp()
1521 match(FalseVal, m_Xor(m_Specific(X), m_APInt(C))) && *Y == *C) in foldSelectInstWithICmp()
1530 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1533 if (Instruction *V = foldSelectCtlzToCttz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1536 if (Value *V = foldSelectICmpAndOr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1539 if (Value *V = foldSelectICmpLshrAshr(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1542 if (Value *V = foldSelectCttzCtlz(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1545 if (Value *V = canonicalizeSaturatedSubtract(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1548 if (Value *V = canonicalizeSaturatedAdd(ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1724 Value *FalseVal = SI.getFalseValue(); in foldAddSubSelect() local
1726 auto *FI = dyn_cast<Instruction>(FalseVal); in foldAddSubSelect()
1799 Value *FalseVal = SI.getFalseValue(); in foldOverflowingAddSubSelect() local
1803 !match(FalseVal, m_ExtractValue<0>(m_Specific(II)))) in foldOverflowingAddSubSelect()
1813 Value *TrueVal, *FalseVal, *Op; in foldOverflowingAddSubSelect() local
1816 m_Value(TrueVal), m_Value(FalseVal)))) in foldOverflowingAddSubSelect()
1838 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
1845 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1851 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
1856 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1861 IsMinMax(FalseVal, TrueVal)) in foldOverflowingAddSubSelect()
1866 IsMinMax(TrueVal, FalseVal)) in foldOverflowingAddSubSelect()
2564 Value *TrueVal = Sel.getTrueValue(), *FalseVal = Sel.getFalseValue(); in foldSelectWithFrozenICmp() local
2576 match(Cond, m_c_ICmp(Pred, m_Specific(TrueVal), m_Specific(FalseVal))) && in foldSelectWithFrozenICmp()
2578 return Pred == ICmpInst::ICMP_EQ ? FalseVal : TrueVal; in foldSelectWithFrozenICmp()
2629 Value *FalseVal = SI.getFalseValue(); in visitSelectInst() local
2637 if (match(TrueVal, m_Undef()) || match(FalseVal, m_Undef())) { in visitSelectInst()
2648 if (Value *V = SimplifySelectInst(CondVal, TrueVal, FalseVal, in visitSelectInst()
2668 if (match(TrueVal, m_One()) && impliesPoison(FalseVal, CondVal)) { in visitSelectInst()
2670 return BinaryOperator::CreateOr(CondVal, FalseVal); in visitSelectInst()
2672 if (match(FalseVal, m_Zero()) && impliesPoison(TrueVal, CondVal)) { in visitSelectInst()
2685 return SelectInst::Create(NotCond, FalseVal, Zero); in visitSelectInst()
2688 if (match(FalseVal, m_Specific(One))) { in visitSelectInst()
2697 if (CondVal == FalseVal) in visitSelectInst()
2702 return SelectInst::Create(TrueVal, FalseVal, Zero); in visitSelectInst()
2704 if (match(FalseVal, m_Not(m_Specific(CondVal)))) in visitSelectInst()
2705 return SelectInst::Create(FalseVal, One, TrueVal); in visitSelectInst()
2719 (CondVal->hasOneUse() || FalseVal->hasOneUse()) && in visitSelectInst()
2725 match(TrueVal, m_One()) && match(FalseVal, m_Specific(B))) in visitSelectInst()
2729 match(TrueVal, m_Specific(B)) && match(FalseVal, m_Zero())) in visitSelectInst()
2736 if (Value *S = simplifyWithOpReplaced(FalseVal, CondVal, Zero, SQ, in visitSelectInst()
2741 if (match(FalseVal, m_Zero()) || match(TrueVal, m_One())) { in visitSelectInst()
2743 bool IsAnd = match(FalseVal, m_Zero()) ? true : false; in visitSelectInst()
2744 Value *Op1 = IsAnd ? TrueVal : FalseVal; in visitSelectInst()
2768 match(FalseVal, m_Zero())) { in visitSelectInst()
2774 match(FalseVal, m_Zero())) { in visitSelectInst()
2783 match(FalseVal, m_Select(m_Value(A), m_Value(B), m_Zero()))) { in visitSelectInst()
2790 Optional<bool> Res = isImpliedCondition(FalseVal, B, DL, false); in visitSelectInst()
2800 match(FalseVal, m_Select(m_Value(C2), m_Value(B), m_Zero()))) { in visitSelectInst()
2820 if (match(TrueVal, m_One()) && match(FalseVal, m_Zero())) in visitSelectInst()
2824 if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero())) in visitSelectInst()
2828 if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) { in visitSelectInst()
2834 if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) { in visitSelectInst()
2843 if ((Cmp0 == TrueVal && Cmp1 == FalseVal) || in visitSelectInst()
2844 (Cmp0 == FalseVal && Cmp1 == TrueVal)) { in visitSelectInst()
2857 Value *NewSel = Builder.CreateSelect(NewCond, FalseVal, TrueVal); in visitSelectInst()
2871 if (match(CondVal, m_FCmp(Pred, m_Specific(FalseVal), m_AnyZeroFP())) && in visitSelectInst()
2872 match(TrueVal, m_FSub(m_PosZeroFP(), m_Specific(FalseVal))) && in visitSelectInst()
2875 Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FalseVal, &SI); in visitSelectInst()
2880 match(FalseVal, m_FSub(m_PosZeroFP(), m_Specific(TrueVal))) && in visitSelectInst()
2881 match(FalseVal, m_Instruction(FSub)) && FSub->hasNoNaNs() && in visitSelectInst()
2890 if (match(CondVal, m_FCmp(Pred, m_Specific(FalseVal), m_AnyZeroFP())) && in visitSelectInst()
2891 match(TrueVal, m_FNeg(m_Specific(FalseVal))) && in visitSelectInst()
2896 Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FalseVal, &SI); in visitSelectInst()
2903 match(FalseVal, m_FNeg(m_Specific(TrueVal))) && in visitSelectInst()
2904 match(FalseVal, m_Instruction(FNeg)) && FNeg->hasNoNaNs() && in visitSelectInst()
2926 auto *FI = dyn_cast<Instruction>(FalseVal); in visitSelectInst()
2953 if (auto *NewGep = SelectGepWithBase(TrueGep, FalseVal, false)) in visitSelectInst()
2955 if (auto *FalseGep = dyn_cast<GetElementPtrInst>(FalseVal)) in visitSelectInst()
2961 if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal)) in visitSelectInst()
3074 canSelectOperandBeMappingIntoPredBlock(FalseVal, SI)) in visitSelectInst()
3090 if (TrueSI->getFalseValue() == FalseVal && TrueSI->hasOneUse()) { in visitSelectInst()
3098 if (SelectInst *FalseSI = dyn_cast<SelectInst>(FalseVal)) { in visitSelectInst()
3153 if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) && in visitSelectInst()
3194 return replaceInstUsesWith(SI, FalseVal); in visitSelectInst()
3221 if (match(FalseVal, m_Zero()) && in visitSelectInst()
3226 MaskedLoad->setArgOperand(3, FalseVal /* Zero */); in visitSelectInst()
3232 match(FalseVal, m_MaskedLoad(m_Value(), m_Value(), m_Value(Mask), in visitSelectInst()
3244 auto *MaskedLoad = cast<IntrinsicInst>(FalseVal); in visitSelectInst()