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,
 2232     SI.setOperand(1, FalseVal);
 2243       return BinaryOperator::CreateOr(CondVal, FalseVal);
 2248       return BinaryOperator::CreateAnd(NotCond, FalseVal);
 2250     if (match(FalseVal, m_Zero())) {
 2254     if (match(FalseVal, m_One())) {
 2263       return BinaryOperator::CreateOr(CondVal, FalseVal);
 2264     if (CondVal == FalseVal)
 2270       return BinaryOperator::CreateAnd(TrueVal, FalseVal);
 2271     if (match(FalseVal, m_Not(m_Specific(CondVal))))
 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,
 2353   if (match(CondVal, m_FCmp(Pred, m_Specific(FalseVal), m_AnyZeroFP())) &&
 2354       match(TrueVal, m_FSub(m_PosZeroFP(), m_Specific(FalseVal))) &&
 2357     Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FalseVal, FSub);
 2362       match(FalseVal, m_FSub(m_PosZeroFP(), m_Specific(TrueVal))) &&
 2363       match(FalseVal, m_Instruction(FSub)) && FSub->hasNoNaNs() &&
 2372   if (match(CondVal, m_FCmp(Pred, m_Specific(FalseVal), m_AnyZeroFP())) &&
 2373       match(TrueVal, m_FNeg(m_Specific(FalseVal))) &&
 2378     Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, FalseVal, FNeg);
 2385       match(FalseVal, m_FNeg(m_Specific(TrueVal))) &&
 2386       match(FalseVal, m_Instruction(FNeg)) &&
 2404   auto *FI = dyn_cast<Instruction>(FalseVal);
 2414     if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal))
 2527         canSelectOperandBeMappingIntoPredBlock(FalseVal, SI))
 2543       if (TrueSI->getFalseValue() == FalseVal && TrueSI->hasOneUse()) {
 2551   if (SelectInst *FalseSI = dyn_cast<SelectInst>(FalseVal)) {
 2607   if (match(FalseVal, m_OneUse(m_BinOp(FalseBO))) &&
 2628     SI.setOperand(1, FalseVal);
 2656       return replaceInstUsesWith(SI, FalseVal);