Lines Matching refs:TrueVal
78 static Value *foldSelectWithBinaryOp(Value *Cond, Value *TrueVal, in foldSelectWithBinaryOp() argument
108 if (!match(Cond, m_c_BinOp(m_c_ICmp(Pred1, m_Specific(TrueVal), in foldSelectWithBinaryOp()
114 if (X == TrueVal || X == FalseVal || Y == TrueVal || Y == FalseVal) in foldSelectWithBinaryOp()
115 return BinOpCode == BinaryOperator::Or ? TrueVal : FalseVal; in foldSelectWithBinaryOp()
4020 static Value *simplifySelectBitTest(Value *TrueVal, Value *FalseVal, Value *X, in simplifySelectBitTest() argument
4026 if (FalseVal == X && match(TrueVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4028 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4032 if (TrueVal == X && match(FalseVal, m_And(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4034 return TrueWhenUnset ? FalseVal : TrueVal; in simplifySelectBitTest()
4039 if (FalseVal == X && match(TrueVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4041 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4045 if (TrueVal == X && match(FalseVal, m_Or(m_Specific(X), m_APInt(C))) && in simplifySelectBitTest()
4047 return TrueWhenUnset ? TrueVal : FalseVal; in simplifySelectBitTest()
4057 Value *TrueVal, Value *FalseVal) { in simplifySelectWithFakeICmpEq() argument
4063 return simplifySelectBitTest(TrueVal, FalseVal, X, &Mask, in simplifySelectWithFakeICmpEq()
4069 static Value *simplifySelectWithICmpCond(Value *CondVal, Value *TrueVal, in simplifySelectWithICmpCond() argument
4080 std::swap(TrueVal, FalseVal); in simplifySelectWithICmpCond()
4086 if (TrueVal->getType()->isIntOrIntVectorTy()) { in simplifySelectWithICmpCond()
4089 matchDecomposedSelectPattern(cast<ICmpInst>(CondVal), TrueVal, FalseVal, in simplifySelectWithICmpCond()
4103 if (Value *V = simplifySelectBitTest(TrueVal, FalseVal, X, Y, in simplifySelectWithICmpCond()
4113 if (match(TrueVal, isFsh) && FalseVal == X && CmpLHS == ShAmt) in simplifySelectWithICmpCond()
4126 if (match(FalseVal, isRotate) && TrueVal == X && CmpLHS == ShAmt && in simplifySelectWithICmpCond()
4132 if (match(TrueVal, m_Intrinsic<Intrinsic::abs>(m_Specific(CmpLHS))) && in simplifySelectWithICmpCond()
4135 if (match(TrueVal, in simplifySelectWithICmpCond()
4143 TrueVal, FalseVal)) in simplifySelectWithICmpCond()
4154 TrueVal || in simplifySelectWithICmpCond()
4157 TrueVal) in simplifySelectWithICmpCond()
4159 if (simplifyWithOpReplaced(TrueVal, CmpLHS, CmpRHS, Q, in simplifySelectWithICmpCond()
4162 simplifyWithOpReplaced(TrueVal, CmpRHS, CmpLHS, Q, in simplifySelectWithICmpCond()
4204 static Value *SimplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in SimplifySelectInst() argument
4207 if (auto *TrueC = dyn_cast<Constant>(TrueVal)) in SimplifySelectInst()
4213 return PoisonValue::get(TrueVal->getType()); in SimplifySelectInst()
4217 return isa<Constant>(FalseVal) ? FalseVal : TrueVal; in SimplifySelectInst()
4224 return TrueVal; in SimplifySelectInst()
4232 assert(TrueVal->getType() == FalseVal->getType() && in SimplifySelectInst()
4234 if (Cond->getType() == TrueVal->getType() && in SimplifySelectInst()
4235 match(TrueVal, m_One()) && match(FalseVal, m_ZeroInt())) in SimplifySelectInst()
4239 if (TrueVal == FalseVal) in SimplifySelectInst()
4240 return TrueVal; in SimplifySelectInst()
4247 if (isa<PoisonValue>(TrueVal) || in SimplifySelectInst()
4248 (Q.isUndefValue(TrueVal) && in SimplifySelectInst()
4255 isGuaranteedNotToBePoison(TrueVal, Q.AC, Q.CxtI, Q.DT))) in SimplifySelectInst()
4256 return TrueVal; in SimplifySelectInst()
4260 if (isa<FixedVectorType>(TrueVal->getType()) && in SimplifySelectInst()
4261 match(TrueVal, m_Constant(TrueC)) && in SimplifySelectInst()
4291 simplifySelectWithICmpCond(Cond, TrueVal, FalseVal, Q, MaxRecurse)) in SimplifySelectInst()
4294 if (Value *V = simplifySelectWithFCmp(Cond, TrueVal, FalseVal, Q)) in SimplifySelectInst()
4297 if (Value *V = foldSelectWithBinaryOp(Cond, TrueVal, FalseVal)) in SimplifySelectInst()
4302 return *Imp ? TrueVal : FalseVal; in SimplifySelectInst()
4307 Value *llvm::SimplifySelectInst(Value *Cond, Value *TrueVal, Value *FalseVal, in SimplifySelectInst() argument
4309 return ::SimplifySelectInst(Cond, TrueVal, FalseVal, Q, RecursionLimit); in SimplifySelectInst()