reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

lib/Transforms/InstCombine/InstCombineSelect.cpp
 2201   if (isa<UndefValue>(TrueVal) || isa<UndefValue>(FalseVal)) {
 2212   if (Value *V = SimplifySelectInst(CondVal, TrueVal, FalseVal,
 2233     SI.setOperand(2, TrueVal);
 2240       TrueVal->getType() == CondVal->getType()) {
 2241     if (match(TrueVal, m_One())) {
 2245     if (match(TrueVal, m_Zero())) {
 2252       return BinaryOperator::CreateAnd(CondVal, TrueVal);
 2257       return BinaryOperator::CreateOr(NotCond, TrueVal);
 2262     if (CondVal == TrueVal)
 2265       return BinaryOperator::CreateAnd(CondVal, TrueVal);
 2269     if (match(TrueVal, m_Not(m_Specific(CondVal))))
 2270       return BinaryOperator::CreateAnd(TrueVal, FalseVal);
 2272       return BinaryOperator::CreateOr(TrueVal, FalseVal);
 2284     if (match(TrueVal, m_One()) && match(FalseVal, m_Zero()))
 2288     if (match(TrueVal, m_AllOnes()) && match(FalseVal, m_Zero()))
 2292     if (match(TrueVal, m_Zero()) && match(FalseVal, m_One())) {
 2298     if (match(TrueVal, m_Zero()) && match(FalseVal, m_AllOnes())) {
 2306     if (FCI->getOperand(0) == TrueVal && FCI->getOperand(1) == FalseVal) {
 2316         Value *NewCond = Builder.CreateFCmp(InvPred, TrueVal, FalseVal,
 2319         return SelectInst::Create(NewCond, FalseVal, TrueVal,
 2324     } else if (FCI->getOperand(0) == FalseVal && FCI->getOperand(1) == TrueVal){
 2334         Value *NewCond = Builder.CreateFCmp(InvPred, FalseVal, TrueVal,
 2337         return SelectInst::Create(NewCond, FalseVal, TrueVal,
 2354       match(TrueVal, m_FSub(m_PosZeroFP(), m_Specific(FalseVal))) &&
 2355       match(TrueVal, m_Instruction(FSub)) && FSub->hasNoNaNs() &&
 2361   if (match(CondVal, m_FCmp(Pred, m_Specific(TrueVal), m_AnyZeroFP())) &&
 2362       match(FalseVal, m_FSub(m_PosZeroFP(), m_Specific(TrueVal))) &&
 2365     Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, TrueVal, FSub);
 2373       match(TrueVal, m_FNeg(m_Specific(FalseVal))) &&
 2374       match(TrueVal, m_Instruction(FNeg)) &&
 2384   if (match(CondVal, m_FCmp(Pred, m_Specific(TrueVal), m_AnyZeroFP())) &&
 2385       match(FalseVal, m_FNeg(m_Specific(TrueVal))) &&
 2390     Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, TrueVal, FNeg);
 2403   auto *TI = dyn_cast<Instruction>(TrueVal);
 2414     if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal))
 2526     if (canSelectOperandBeMappingIntoPredBlock(TrueVal, SI) &&
 2531   if (SelectInst *TrueSI = dyn_cast<SelectInst>(TrueVal)) {
 2561       if (FalseSI->getTrueValue() == TrueVal && FalseSI->hasOneUse()) {
 2587   if (match(TrueVal, m_OneUse(m_BinOp(TrueBO))) &&
 2629     SI.setOperand(2, TrueVal);
 2654       return replaceInstUsesWith(SI, TrueVal);