Lines Matching refs:TrueVal
83 static Value *foldSelectWithBinaryOp(Value *Cond, Value *TrueVal, in foldSelectWithBinaryOp() argument
113 if (!match(Cond, m_c_BinOp(m_c_ICmp(Pred1, m_Specific(TrueVal), in foldSelectWithBinaryOp()
119 if (X == TrueVal || X == FalseVal || Y == TrueVal || Y == FalseVal) in foldSelectWithBinaryOp()
120 return BinOpCode == BinaryOperator::Or ? TrueVal : FalseVal; in foldSelectWithBinaryOp()
4492 static Value *simplifySelectBitTest(Value *TrueVal, Value *FalseVal, Value *X, in simplifySelectBitTest() argument
4498 if (FalseVal == X && match(TrueVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4500 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4504 if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4506 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4511 if (FalseVal == X && match(TrueVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4514 if (TrueWhenUnset && cast<PossiblyDisjointInst>(TrueVal)->isDisjoint()) in simplifySelectBitTest()
4516 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4521 if (TrueVal == X && match(FalseVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4526 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4609 Value *TrueVal, Value *FalseVal) { in simplifySelectWithFakeICmpEq() argument
4615 return simplifySelectBitTest(TrueVal, FalseVal, X, &Mask, in simplifySelectWithFakeICmpEq()
4622 Value *TrueVal, Value *FalseVal, in simplifySelectWithICmpEq() argument
4627 /* DropFlags */ nullptr, MaxRecurse) == TrueVal) in simplifySelectWithICmpEq()
4629 if (simplifyWithOpReplaced(TrueVal, CmpLHS, CmpRHS, Q, in simplifySelectWithICmpEq()
4639 static Value *simplifySelectWithICmpCond(Value *CondVal, Value *TrueVal, in simplifySelectWithICmpCond() argument
4648 if (Value *V = simplifyCmpSelOfMaxMin(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal)) in simplifySelectWithICmpCond()
4654 std::swap(TrueVal, FalseVal); in simplifySelectWithICmpCond()
4660 if (TrueVal->getType()->isIntOrIntVectorTy()) { in simplifySelectWithICmpCond()
4663 matchDecomposedSelectPattern(cast<ICmpInst>(CondVal), TrueVal, FalseVal, in simplifySelectWithICmpCond()
4678 if (Value *V = simplifySelectBitTest(TrueVal, FalseVal, X, Y, in simplifySelectWithICmpCond()
4688 if (match(TrueVal, isFsh) && FalseVal == X && CmpLHS == ShAmt) in simplifySelectWithICmpCond()
4701 if (match(FalseVal, isRotate) && TrueVal == X && CmpLHS == ShAmt && in simplifySelectWithICmpCond()
4707 if (match(TrueVal, m_Intrinsic<Intrinsic::abs>(m_Specific(CmpLHS))) && in simplifySelectWithICmpCond()
4710 if (match(TrueVal, in simplifySelectWithICmpCond()
4718 simplifySelectWithFakeICmpEq(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal)) in simplifySelectWithICmpCond()
4725 if (Value *V = simplifySelectWithICmpEq(CmpLHS, CmpRHS, TrueVal, FalseVal, in simplifySelectWithICmpCond()
4728 if (Value *V = simplifySelectWithICmpEq(CmpRHS, CmpLHS, TrueVal, FalseVal, in simplifySelectWithICmpCond()
4738 if (Value *V = simplifySelectWithICmpEq(X, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4741 if (Value *V = simplifySelectWithICmpEq(Y, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4750 if (Value *V = simplifySelectWithICmpEq(X, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4753 if (Value *V = simplifySelectWithICmpEq(Y, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4795 static Value *simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in simplifySelectInst() argument
4798 if (auto *TrueC = dyn_cast<Constant>(TrueVal)) in simplifySelectInst()
4805 return PoisonValue::get(TrueVal->getType()); in simplifySelectInst()
4809 return isa<Constant>(FalseVal) ? FalseVal : TrueVal; in simplifySelectInst()
4816 return TrueVal; in simplifySelectInst()
4823 assert(TrueVal->getType() == FalseVal->getType() && in simplifySelectInst()
4826 if (Cond->getType() == TrueVal->getType()) { in simplifySelectInst()
4828 if (match(TrueVal, m_One()) && match(FalseVal, m_ZeroInt())) in simplifySelectInst()
4832 if (match(Cond, m_c_LogicalAnd(m_Specific(TrueVal), m_Specific(FalseVal)))) in simplifySelectInst()
4836 if (match(Cond, m_c_LogicalOr(m_Specific(TrueVal), m_Specific(FalseVal)))) in simplifySelectInst()
4837 return TrueVal; in simplifySelectInst()
4841 match(TrueVal, m_ZeroInt())) in simplifySelectInst()
4847 if (match(Cond, m_Not(m_c_LogicalOr(m_Specific(TrueVal), m_Value())))) in simplifySelectInst()
4850 if (match(TrueVal, m_Not(m_c_LogicalOr(m_Specific(Cond), m_Value())))) in simplifySelectInst()
4854 if (match(Cond, m_c_LogicalOr(m_Specific(TrueVal), m_Value()))) in simplifySelectInst()
4855 return TrueVal; in simplifySelectInst()
4857 if (match(TrueVal, m_c_LogicalOr(m_Specific(Cond), m_Value()))) in simplifySelectInst()
4863 match(TrueVal, m_c_LogicalOr(m_Specific(X), m_Specific(Y)))) in simplifySelectInst()
4865 if (match(TrueVal, m_c_LogicalOr(m_Value(X), m_Not(m_Value(Y)))) && in simplifySelectInst()
4871 if (match(TrueVal, m_One())) { in simplifySelectInst()
4889 if (TrueVal == FalseVal) in simplifySelectInst()
4890 return TrueVal; in simplifySelectInst()
4892 if (Cond == TrueVal) { in simplifySelectInst()
4902 if (match(TrueVal, m_One())) in simplifySelectInst()
4905 if (match(TrueVal, m_ZeroInt())) in simplifySelectInst()
4914 if (isa<PoisonValue>(TrueVal) || in simplifySelectInst()
4915 (Q.isUndefValue(TrueVal) && impliesPoison(FalseVal, Cond))) in simplifySelectInst()
4920 (Q.isUndefValue(FalseVal) && impliesPoison(TrueVal, Cond))) in simplifySelectInst()
4921 return TrueVal; in simplifySelectInst()
4925 if (isa<FixedVectorType>(TrueVal->getType()) && in simplifySelectInst()
4926 match(TrueVal, m_Constant(TrueC)) && in simplifySelectInst()
4956 simplifySelectWithICmpCond(Cond, TrueVal, FalseVal, Q, MaxRecurse)) in simplifySelectInst()
4959 if (Value *V = simplifySelectWithFCmp(Cond, TrueVal, FalseVal, Q)) in simplifySelectInst()
4962 if (Value *V = foldSelectWithBinaryOp(Cond, TrueVal, FalseVal)) in simplifySelectInst()
4967 return *Imp ? TrueVal : FalseVal; in simplifySelectInst()
4972 Value *llvm::simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in simplifySelectInst() argument
4974 return ::simplifySelectInst(Cond, TrueVal, FalseVal, Q, RecursionLimit); in simplifySelectInst()