Lines Matching defs:FalseVal
4502 static Value *simplifySelectBitTest(Value *TrueVal, Value *FalseVal, Value *X,
4508 if (FalseVal == X && match(TrueVal, m_And(m_Specific(X), m_APInt(C))) &&
4510 return TrueWhenUnset ? FalseVal : TrueVal;
4514 if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) &&
4516 return TrueWhenUnset ? FalseVal : TrueVal;
4521 if (FalseVal == X && match(TrueVal, m_Or(m_Specific(X), m_APInt(C))) &&
4526 return TrueWhenUnset ? TrueVal : FalseVal;
4531 if (TrueVal == X && match(FalseVal, m_Or(m_Specific(X), m_APInt(C))) &&
4534 if (!TrueWhenUnset && cast<PossiblyDisjointInst>(FalseVal)->isDisjoint())
4536 return TrueWhenUnset ? TrueVal : FalseVal;
4619 Value *FalseVal) {
4621 return simplifySelectBitTest(TrueVal, FalseVal, Res->X, &Res->Mask,
4631 Value *FalseVal, const SimplifyQuery &Q, unsigned MaxRecurse) {
4633 simplifyWithOpsReplaced(FalseVal, Replacements, Q.getWithoutUndef(),
4637 SimplifiedFalseVal = FalseVal;
4647 return FalseVal;
4655 Value *FalseVal,
4663 if (Value *V = simplifyCmpSelOfMaxMin(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal))
4669 std::swap(TrueVal, FalseVal);
4678 matchDecomposedSelectPattern(cast<ICmpInst>(CondVal), TrueVal, FalseVal,
4693 if (Value *V = simplifySelectBitTest(TrueVal, FalseVal, X, Y,
4703 if (match(TrueVal, isFsh) && FalseVal == X && CmpLHS == ShAmt)
4716 if (match(FalseVal, isRotate) && TrueVal == X && CmpLHS == ShAmt &&
4718 return FalseVal;
4723 match(FalseVal, m_Neg(m_Intrinsic<Intrinsic::abs>(m_Specific(CmpLHS)))))
4724 return FalseVal;
4727 match(FalseVal, m_Intrinsic<Intrinsic::abs>(m_Specific(CmpLHS))))
4728 return FalseVal;
4733 simplifySelectWithFakeICmpEq(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal))
4741 FalseVal, Q, MaxRecurse))
4744 FalseVal, Q, MaxRecurse))
4754 {{X, CmpRHS}, {Y, CmpRHS}}, TrueVal, FalseVal, Q, MaxRecurse))
4763 {{X, CmpRHS}, {Y, CmpRHS}}, TrueVal, FalseVal, Q, MaxRecurse))
4823 static Value *simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal,
4827 if (auto *FalseC = dyn_cast<Constant>(FalseVal))
4837 return isa<Constant>(FalseVal) ? FalseVal : TrueVal;
4846 return FalseVal;
4851 assert(TrueVal->getType() == FalseVal->getType() &&
4856 if (match(TrueVal, m_One()) && match(FalseVal, m_ZeroInt()))
4860 if (match(Cond, m_c_LogicalAnd(m_Specific(TrueVal), m_Specific(FalseVal))))
4861 return FalseVal;
4864 if (match(Cond, m_c_LogicalOr(m_Specific(TrueVal), m_Specific(FalseVal))))
4868 if (match(Cond, m_c_LogicalOr(m_Specific(FalseVal), m_Value())) &&
4873 if (match(FalseVal, m_ZeroInt())) {
4901 if (match(Cond, m_Not(m_c_LogicalAnd(m_Specific(FalseVal), m_Value()))))
4904 if (match(FalseVal, m_Not(m_c_LogicalAnd(m_Specific(Cond), m_Value()))))
4908 if (match(Cond, m_c_LogicalAnd(m_Specific(FalseVal), m_Value())))
4909 return FalseVal;
4911 if (match(FalseVal, m_c_LogicalAnd(m_Specific(Cond), m_Value())))
4917 if (TrueVal == FalseVal)
4922 if (match(FalseVal, m_ZeroInt()))
4925 if (match(FalseVal, m_One()))
4928 if (Cond == FalseVal) {
4943 (Q.isUndefValue(TrueVal) && impliesPoison(FalseVal, Cond)))
4944 return FalseVal;
4947 if (isa<PoisonValue>(FalseVal) ||
4948 (Q.isUndefValue(FalseVal) && impliesPoison(TrueVal, Cond)))
4955 match(FalseVal, m_Constant(FalseC))) {
4984 simplifySelectWithICmpCond(Cond, TrueVal, FalseVal, Q, MaxRecurse))
4987 if (Value *V = simplifySelectWithFCmp(Cond, TrueVal, FalseVal, Q, MaxRecurse))
4992 return *Imp ? TrueVal : FalseVal;
4997 Value *llvm::simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal,
4999 return ::simplifySelectInst(Cond, TrueVal, FalseVal, Q, RecursionLimit);