Lines Matching refs:TrueVal
82 static Value *foldSelectWithBinaryOp(Value *Cond, Value *TrueVal, in foldSelectWithBinaryOp() argument
112 if (!match(Cond, m_c_BinOp(m_c_ICmp(Pred1, m_Specific(TrueVal), in foldSelectWithBinaryOp()
118 if (X == TrueVal || X == FalseVal || Y == TrueVal || Y == FalseVal) in foldSelectWithBinaryOp()
119 return BinOpCode == BinaryOperator::Or ? TrueVal : FalseVal; in foldSelectWithBinaryOp()
4466 static Value *simplifySelectBitTest(Value *TrueVal, Value *FalseVal, Value *X, in simplifySelectBitTest() argument
4472 if (FalseVal == X && match(TrueVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4474 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4478 if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4480 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4485 if (FalseVal == X && match(TrueVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4488 if (TrueWhenUnset && cast<PossiblyDisjointInst>(TrueVal)->isDisjoint()) in simplifySelectBitTest()
4490 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4495 if (TrueVal == X && match(FalseVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4500 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4583 Value *TrueVal, Value *FalseVal) { in simplifySelectWithFakeICmpEq() argument
4589 return simplifySelectBitTest(TrueVal, FalseVal, X, &Mask, in simplifySelectWithFakeICmpEq()
4596 Value *TrueVal, Value *FalseVal, in simplifySelectWithICmpEq() argument
4601 /* DropFlags */ nullptr, MaxRecurse) == TrueVal) in simplifySelectWithICmpEq()
4603 if (simplifyWithOpReplaced(TrueVal, CmpLHS, CmpRHS, Q, in simplifySelectWithICmpEq()
4613 static Value *simplifySelectWithICmpCond(Value *CondVal, Value *TrueVal, in simplifySelectWithICmpCond() argument
4622 if (Value *V = simplifyCmpSelOfMaxMin(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal)) in simplifySelectWithICmpCond()
4628 std::swap(TrueVal, FalseVal); in simplifySelectWithICmpCond()
4634 if (TrueVal->getType()->isIntOrIntVectorTy()) { in simplifySelectWithICmpCond()
4637 matchDecomposedSelectPattern(cast<ICmpInst>(CondVal), TrueVal, FalseVal, in simplifySelectWithICmpCond()
4652 if (Value *V = simplifySelectBitTest(TrueVal, FalseVal, X, Y, in simplifySelectWithICmpCond()
4662 if (match(TrueVal, isFsh) && FalseVal == X && CmpLHS == ShAmt) in simplifySelectWithICmpCond()
4675 if (match(FalseVal, isRotate) && TrueVal == X && CmpLHS == ShAmt && in simplifySelectWithICmpCond()
4681 if (match(TrueVal, m_Intrinsic<Intrinsic::abs>(m_Specific(CmpLHS))) && in simplifySelectWithICmpCond()
4684 if (match(TrueVal, in simplifySelectWithICmpCond()
4692 simplifySelectWithFakeICmpEq(CmpLHS, CmpRHS, Pred, TrueVal, FalseVal)) in simplifySelectWithICmpCond()
4699 if (Value *V = simplifySelectWithICmpEq(CmpLHS, CmpRHS, TrueVal, FalseVal, in simplifySelectWithICmpCond()
4702 if (Value *V = simplifySelectWithICmpEq(CmpRHS, CmpLHS, TrueVal, FalseVal, in simplifySelectWithICmpCond()
4712 if (Value *V = simplifySelectWithICmpEq(X, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4715 if (Value *V = simplifySelectWithICmpEq(Y, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4724 if (Value *V = simplifySelectWithICmpEq(X, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4727 if (Value *V = simplifySelectWithICmpEq(Y, CmpRHS, TrueVal, FalseVal, Q, in simplifySelectWithICmpCond()
4769 static Value *simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in simplifySelectInst() argument
4772 if (auto *TrueC = dyn_cast<Constant>(TrueVal)) in simplifySelectInst()
4779 return PoisonValue::get(TrueVal->getType()); in simplifySelectInst()
4783 return isa<Constant>(FalseVal) ? FalseVal : TrueVal; in simplifySelectInst()
4790 return TrueVal; in simplifySelectInst()
4797 assert(TrueVal->getType() == FalseVal->getType() && in simplifySelectInst()
4800 if (Cond->getType() == TrueVal->getType()) { in simplifySelectInst()
4802 if (match(TrueVal, m_One()) && match(FalseVal, m_ZeroInt())) in simplifySelectInst()
4806 if (match(Cond, m_c_LogicalAnd(m_Specific(TrueVal), m_Specific(FalseVal)))) in simplifySelectInst()
4810 if (match(Cond, m_c_LogicalOr(m_Specific(TrueVal), m_Specific(FalseVal)))) in simplifySelectInst()
4811 return TrueVal; in simplifySelectInst()
4815 match(TrueVal, m_ZeroInt())) in simplifySelectInst()
4821 if (match(Cond, m_Not(m_c_LogicalOr(m_Specific(TrueVal), m_Value())))) in simplifySelectInst()
4824 if (match(TrueVal, m_Not(m_c_LogicalOr(m_Specific(Cond), m_Value())))) in simplifySelectInst()
4828 if (match(Cond, m_c_LogicalOr(m_Specific(TrueVal), m_Value()))) in simplifySelectInst()
4829 return TrueVal; in simplifySelectInst()
4831 if (match(TrueVal, m_c_LogicalOr(m_Specific(Cond), m_Value()))) in simplifySelectInst()
4837 match(TrueVal, m_c_LogicalOr(m_Specific(X), m_Specific(Y)))) in simplifySelectInst()
4839 if (match(TrueVal, m_c_LogicalOr(m_Value(X), m_Not(m_Value(Y)))) && in simplifySelectInst()
4845 if (match(TrueVal, m_One())) { in simplifySelectInst()
4863 if (TrueVal == FalseVal) in simplifySelectInst()
4864 return TrueVal; in simplifySelectInst()
4866 if (Cond == TrueVal) { in simplifySelectInst()
4876 if (match(TrueVal, m_One())) in simplifySelectInst()
4879 if (match(TrueVal, m_ZeroInt())) in simplifySelectInst()
4888 if (isa<PoisonValue>(TrueVal) || in simplifySelectInst()
4889 (Q.isUndefValue(TrueVal) && impliesPoison(FalseVal, Cond))) in simplifySelectInst()
4894 (Q.isUndefValue(FalseVal) && impliesPoison(TrueVal, Cond))) in simplifySelectInst()
4895 return TrueVal; in simplifySelectInst()
4899 if (isa<FixedVectorType>(TrueVal->getType()) && in simplifySelectInst()
4900 match(TrueVal, m_Constant(TrueC)) && in simplifySelectInst()
4930 simplifySelectWithICmpCond(Cond, TrueVal, FalseVal, Q, MaxRecurse)) in simplifySelectInst()
4933 if (Value *V = simplifySelectWithFCmp(Cond, TrueVal, FalseVal, Q)) in simplifySelectInst()
4936 if (Value *V = foldSelectWithBinaryOp(Cond, TrueVal, FalseVal)) in simplifySelectInst()
4941 return *Imp ? TrueVal : FalseVal; in simplifySelectInst()
4946 Value *llvm::simplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in simplifySelectInst() argument
4948 return ::simplifySelectInst(Cond, TrueVal, FalseVal, Q, RecursionLimit); in simplifySelectInst()