Lines Matching refs:SI

271 Instruction *InstCombinerImpl::foldSelectOpOp(SelectInst &SI, Instruction *TI,  in foldSelectOpOp()  argument
277 if ((match(&SI, m_SMin(m_Value(), m_Value())) || in foldSelectOpOp()
278 match(&SI, m_SMax(m_Value(), m_Value())) || in foldSelectOpOp()
279 match(&SI, m_UMin(m_Value(), m_Value())) || in foldSelectOpOp()
280 match(&SI, m_UMax(m_Value(), m_Value())))) in foldSelectOpOp()
284 Value *Cond = SI.getCondition(); in foldSelectOpOp()
320 SI.getName() + ".v", &SI); in foldSelectOpOp()
373 FMF |= SI.getFastMathFlags(); in foldSelectOpOp()
375 Builder.CreateSelect(Cond, X, Y, SI.getName() + ".v", &SI); in foldSelectOpOp()
393 Builder.CreateSelect(Cond, OtherOpT, OtherOpF, "minmaxop", &SI); in foldSelectOpOp()
409 FPMathOperator *SelectFPOp = cast<FPMathOperator>(&SI); in foldSelectOpOp()
420 return replaceInstUsesWith(SI, NewLdexp); in foldSelectOpOp()
435 SI.getName() + ".v", &SI); in foldSelectOpOp()
483 SI.getName() + ".v", &SI); in foldSelectOpOp()
510 Instruction *InstCombinerImpl::foldSelectIntoOp(SelectInst &SI, Value *TrueVal, in foldSelectIntoOp() argument
514 auto TryFoldSelectIntoOp = [&](SelectInst &SI, Value *TrueVal, in foldSelectIntoOp()
535 if (isa<FPMathOperator>(&SI)) in foldSelectIntoOp()
536 FMF = SI.getFastMathFlags(); in foldSelectIntoOp()
554 if (isa<FPMathOperator>(&SI) && in foldSelectIntoOp()
555 !computeKnownFPClass(FalseVal, FMF, fcNan, &SI).isKnownNeverNaN()) in foldSelectIntoOp()
558 Value *NewSel = Builder.CreateSelect(SI.getCondition(), Swapped ? C : OOp, in foldSelectIntoOp()
559 Swapped ? OOp : C, "", &SI); in foldSelectIntoOp()
560 if (isa<FPMathOperator>(&SI)) in foldSelectIntoOp()
569 if (Instruction *R = TryFoldSelectIntoOp(SI, TrueVal, FalseVal, false)) in foldSelectIntoOp()
572 if (Instruction *R = TryFoldSelectIntoOp(SI, FalseVal, TrueVal, true)) in foldSelectIntoOp()
858 static Instruction *foldSelectZeroOrMul(SelectInst &SI, InstCombinerImpl &IC) { in foldSelectZeroOrMul() argument
859 auto *CondVal = SI.getCondition(); in foldSelectZeroOrMul()
860 auto *TrueVal = SI.getTrueValue(); in foldSelectZeroOrMul()
861 auto *FalseVal = SI.getFalseValue(); in foldSelectZeroOrMul()
897 return IC.replaceInstUsesWith(SI, FalseValI); in foldSelectZeroOrMul()
1668 static Value *foldSelectInstWithICmpConst(SelectInst &SI, ICmpInst *ICI, in foldSelectInstWithICmpConst() argument
1677 Value *TVal = SI.getTrueValue(); in foldSelectInstWithICmpConst()
1678 Value *FVal = SI.getFalseValue(); in foldSelectInstWithICmpConst()
1697 if (match(&SI, m_Select(m_Specific(ICI), m_APInt(C), m_BinOp(BO)))) in foldSelectInstWithICmpConst()
1699 else if (match(&SI, m_Select(m_Specific(ICI), m_BinOp(BO), m_APInt(C)))) in foldSelectInstWithICmpConst()
1717 static Instruction *foldSelectICmpEq(SelectInst &SI, ICmpInst *ICI, in foldSelectICmpEq() argument
1723 Value *TrueVal = SI.getTrueValue(); in foldSelectICmpEq()
1724 Value *FalseVal = SI.getFalseValue(); in foldSelectICmpEq()
1771 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1777 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1789 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1795 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1807 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1813 return IC.replaceInstUsesWith(SI, FalseVal); in foldSelectICmpEq()
1821 Instruction *InstCombinerImpl::foldSelectInstWithICmp(SelectInst &SI, in foldSelectInstWithICmp() argument
1823 if (Instruction *NewSel = foldSelectValueEquivalence(SI, *ICI)) in foldSelectInstWithICmp()
1827 canonicalizeSPF(*ICI, SI.getTrueValue(), SI.getFalseValue(), *this)) in foldSelectInstWithICmp()
1828 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1830 if (Value *V = foldSelectInstWithICmpConst(SI, ICI, Builder)) in foldSelectInstWithICmp()
1831 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1833 if (Value *V = canonicalizeClampLike(SI, *ICI, Builder, *this)) in foldSelectInstWithICmp()
1834 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1837 tryToReuseConstantFromSelectInComparison(SI, *ICI, *this)) in foldSelectInstWithICmp()
1840 if (Value *V = foldSelectICmpAnd(SI, ICI, Builder)) in foldSelectInstWithICmp()
1841 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1845 Value *TrueVal = SI.getTrueValue(); in foldSelectInstWithICmp()
1846 Value *FalseVal = SI.getFalseValue(); in foldSelectInstWithICmp()
1853 replaceOperand(SI, 1, CmpRHS); in foldSelectInstWithICmp()
1857 replaceOperand(SI, 2, CmpRHS); in foldSelectInstWithICmp()
1862 if (Instruction *NewSel = foldSelectICmpEq(SI, ICI, *this)) in foldSelectInstWithICmp()
1873 Builder.SetInsertPoint(&SI); in foldSelectInstWithICmp()
1875 replaceOperand(SI, 0, IsNeg); in foldSelectInstWithICmp()
1876 SI.swapValues(); in foldSelectInstWithICmp()
1877 SI.swapProfMetadata(); in foldSelectInstWithICmp()
1878 return &SI; in foldSelectInstWithICmp()
1927 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1932 foldSelectICmpAndAnd(SI.getType(), ICI, TrueVal, FalseVal, Builder)) in foldSelectInstWithICmp()
1936 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1945 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1948 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1951 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1954 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1957 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1960 return replaceInstUsesWith(SI, V); in foldSelectInstWithICmp()
1962 return Changed ? &SI : nullptr; in foldSelectInstWithICmp()
1975 const SelectInst &SI) { in canSelectOperandBeMappingIntoPredBlock() argument
1983 const PHINode *CondPHI = cast<PHINode>(SI.getCondition()); in canSelectOperandBeMappingIntoPredBlock()
1991 if (SI.getParent() == CondPHI->getParent() && in canSelectOperandBeMappingIntoPredBlock()
2023 static Instruction *foldAddSubSelect(SelectInst &SI, in foldAddSubSelect() argument
2025 Value *CondVal = SI.getCondition(); in foldAddSubSelect()
2026 Value *TrueVal = SI.getTrueValue(); in foldAddSubSelect()
2027 Value *FalseVal = SI.getFalseValue(); in foldAddSubSelect()
2060 if (SI.getType()->isFPOrFPVectorTy()) { in foldAddSubSelect()
2076 SI.getName() + ".p", &SI); in foldAddSubSelect()
2078 if (SI.getType()->isFPOrFPVectorTy()) { in foldAddSubSelect()
2099 foldOverflowingAddSubSelect(SelectInst &SI, InstCombiner::BuilderTy &Builder) { in foldOverflowingAddSubSelect() argument
2100 Value *CondVal = SI.getCondition(); in foldOverflowingAddSubSelect()
2101 Value *TrueVal = SI.getTrueValue(); in foldOverflowingAddSubSelect()
2102 Value *FalseVal = SI.getFalseValue(); in foldOverflowingAddSubSelect()
2209 Intrinsic::getDeclaration(SI.getModule(), NewIntrinsicID, SI.getType()); in foldOverflowingAddSubSelect()
2258 static Instruction *canonicalizeSelectToShuffle(SelectInst &SI) { in canonicalizeSelectToShuffle() argument
2259 Value *CondVal = SI.getCondition(); in canonicalizeSelectToShuffle()
2290 return new ShuffleVectorInst(SI.getTrueValue(), SI.getFalseValue(), Mask); in canonicalizeSelectToShuffle()
2385 static Value *foldSelectCmpXchg(SelectInst &SI) { in foldSelectCmpXchg() argument
2401 if (SI.hasOneUse()) in foldSelectCmpXchg()
2402 if (auto *Select = dyn_cast<SelectInst>(SI.user_back())) in foldSelectCmpXchg()
2403 if (Select->getCondition() == SI.getCondition()) in foldSelectCmpXchg()
2404 if (Select->getFalseValue() == SI.getTrueValue() || in foldSelectCmpXchg()
2405 Select->getTrueValue() == SI.getFalseValue()) in foldSelectCmpXchg()
2409 auto *CmpXchg = isExtractFromCmpXchg(SI.getCondition(), 1); in foldSelectCmpXchg()
2416 if (auto *X = isExtractFromCmpXchg(SI.getTrueValue(), 0)) in foldSelectCmpXchg()
2417 if (X == CmpXchg && X->getCompareOperand() == SI.getFalseValue()) in foldSelectCmpXchg()
2418 return SI.getFalseValue(); in foldSelectCmpXchg()
2423 if (auto *X = isExtractFromCmpXchg(SI.getFalseValue(), 0)) in foldSelectCmpXchg()
2424 if (X == CmpXchg && X->getCompareOperand() == SI.getTrueValue()) in foldSelectCmpXchg()
2425 return SI.getFalseValue(); in foldSelectCmpXchg()
2719 static Instruction *foldSelectWithSRem(SelectInst &SI, InstCombinerImpl &IC, in foldSelectWithSRem() argument
2721 Value *CondVal = SI.getCondition(); in foldSelectWithSRem()
2722 Value *TrueVal = SI.getTrueValue(); in foldSelectWithSRem()
2723 Value *FalseVal = SI.getFalseValue(); in foldSelectWithSRem()
2795 static Value *simplifyNestedSelectsUsingImpliedCond(SelectInst &SI, in simplifyNestedSelectsUsingImpliedCond() argument
2799 Value *InnerCondVal = SI.getCondition(); in simplifyNestedSelectsUsingImpliedCond()
2800 Value *InnerTrueVal = SI.getTrueValue(); in simplifyNestedSelectsUsingImpliedCond()
2801 Value *InnerFalseVal = SI.getFalseValue(); in simplifyNestedSelectsUsingImpliedCond()
2810 SelectInst &SI, in foldAndOrOfSelectUsingImpliedCond() argument
2814 if (SI.getCondition()->getType() != Op->getType()) in foldAndOrOfSelectUsingImpliedCond()
2816 if (Value *V = simplifyNestedSelectsUsingImpliedCond(SI, Op, IsAnd, DL)) in foldAndOrOfSelectUsingImpliedCond()
2825 static Instruction *foldSelectWithFCmpToFabs(SelectInst &SI, in foldSelectWithFCmpToFabs() argument
2827 Value *CondVal = SI.getCondition(); in foldSelectWithFCmpToFabs()
2831 Value *TrueVal = SI.getTrueValue(); in foldSelectWithFCmpToFabs()
2832 Value *X = SI.getFalseValue(); in foldSelectWithFCmpToFabs()
2845 Value *Fabs = IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, X, &SI); in foldSelectWithFCmpToFabs()
2846 return IC.replaceInstUsesWith(SI, Fabs); in foldSelectWithFCmpToFabs()
2849 Value *Fabs = IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, X, &SI); in foldSelectWithFCmpToFabs()
2850 return IC.replaceInstUsesWith(SI, Fabs); in foldSelectWithFCmpToFabs()
2861 if (FMF.noNaNs() && !SI.hasNoNaNs()) { in foldSelectWithFCmpToFabs()
2862 SI.setHasNoNaNs(true); in foldSelectWithFCmpToFabs()
2865 if (FMF.noInfs() && !SI.hasNoInfs()) { in foldSelectWithFCmpToFabs()
2866 SI.setHasNoInfs(true); in foldSelectWithFCmpToFabs()
2880 if (!SI.hasNoSignedZeros() || !SI.hasNoNaNs()) in foldSelectWithFCmpToFabs()
2892 Value *Fabs = IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, X, &SI); in foldSelectWithFCmpToFabs()
2893 return IC.replaceInstUsesWith(SI, Fabs); in foldSelectWithFCmpToFabs()
2896 Value *Fabs = IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, X, &SI); in foldSelectWithFCmpToFabs()
2898 NewFNeg->setFastMathFlags(SI.getFastMathFlags()); in foldSelectWithFCmpToFabs()
2907 Value *TrueVal = SI.getTrueValue(); in foldSelectWithFCmpToFabs()
2908 Value *X = SI.getFalseValue(); in foldSelectWithFCmpToFabs()
2927 Value *Fabs = IC.Builder.CreateUnaryIntrinsic(Intrinsic::fabs, X, &SI); in foldSelectWithFCmpToFabs()
2929 return IC.replaceInstUsesWith(SI, Fabs); in foldSelectWithFCmpToFabs()
2930 return UnaryOperator::CreateFNegFMF(Fabs, &SI); in foldSelectWithFCmpToFabs()
2933 return ChangedFMF ? &SI : nullptr; in foldSelectWithFCmpToFabs()
2951 foldRoundUpIntegerWithPow2Alignment(SelectInst &SI, in foldRoundUpIntegerWithPow2Alignment() argument
2953 Value *Cond = SI.getCondition(); in foldRoundUpIntegerWithPow2Alignment()
2954 Value *X = SI.getTrueValue(); in foldRoundUpIntegerWithPow2Alignment()
2955 Value *XBiasedHighBits = SI.getFalseValue(); in foldRoundUpIntegerWithPow2Alignment()
3006 R->takeName(&SI); in foldRoundUpIntegerWithPow2Alignment()
3122 Instruction *InstCombinerImpl::foldSelectOfBools(SelectInst &SI) { in foldSelectOfBools() argument
3123 Value *CondVal = SI.getCondition(); in foldSelectOfBools()
3124 Value *TrueVal = SI.getTrueValue(); in foldSelectOfBools()
3125 Value *FalseVal = SI.getFalseValue(); in foldSelectOfBools()
3126 Type *SelType = SI.getType(); in foldSelectOfBools()
3152 SI, Builder.CreateLogicalOr(A, Builder.CreateOr(B, FalseVal))); in foldSelectOfBools()
3159 return replaceInstUsesWith(SI, V); in foldSelectOfBools()
3200 SI, Builder.CreateLogicalAnd(A, Builder.CreateAnd(B, TrueVal))); in foldSelectOfBools()
3207 return replaceInstUsesWith(SI, V); in foldSelectOfBools()
3253 if (match(&SI, m_LogicalAnd(m_Not(m_Value(A)), m_Not(m_Value(B)))) && in foldSelectOfBools()
3260 if (match(&SI, m_LogicalOr(m_Not(m_Value(A)), m_Not(m_Value(B)))) && in foldSelectOfBools()
3268 return replaceOperand(SI, 0, A); in foldSelectOfBools()
3272 return replaceOperand(SI, 0, A); in foldSelectOfBools()
3275 if (match(&SI, m_c_LogicalAnd(m_Not(m_LogicalAnd(m_Value(A), m_Value(B))), in foldSelectOfBools()
3314 return replaceInstUsesWith(SI, Op1); in foldSelectOfBools()
3319 if (auto *V = foldAndOrOfICmps(ICmp0, ICmp1, SI, IsAnd, in foldSelectOfBools()
3321 return replaceInstUsesWith(SI, V); in foldSelectOfBools()
3331 return replaceOperand(SI, 0, A); in foldSelectOfBools()
3337 return replaceOperand(SI, 1, A); in foldSelectOfBools()
3346 return replaceOperand(SI, 2, A); in foldSelectOfBools()
3352 return replaceOperand(SI, 0, A); in foldSelectOfBools()
3490 static Instruction *foldBitCeil(SelectInst &SI, IRBuilderBase &Builder) { in foldBitCeil() argument
3491 Type *SelType = SI.getType(); in foldBitCeil()
3494 Value *FalseVal = SI.getFalseValue(); in foldBitCeil()
3495 Value *TrueVal = SI.getTrueValue(); in foldBitCeil()
3499 if (!match(SI.getCondition(), m_ICmp(Pred, m_Value(Cond0), m_APInt(Cond1)))) in foldBitCeil()
3584 Instruction *InstCombinerImpl::visitSelectInst(SelectInst &SI) { in visitSelectInst() argument
3585 Value *CondVal = SI.getCondition(); in visitSelectInst()
3586 Value *TrueVal = SI.getTrueValue(); in visitSelectInst()
3587 Value *FalseVal = SI.getFalseValue(); in visitSelectInst()
3588 Type *SelType = SI.getType(); in visitSelectInst()
3591 SQ.getWithInstruction(&SI))) in visitSelectInst()
3592 return replaceInstUsesWith(SI, V); in visitSelectInst()
3594 if (Instruction *I = canonicalizeSelectToShuffle(SI)) in visitSelectInst()
3597 if (Instruction *I = canonicalizeScalarSelectOfVecs(SI, *this)) in visitSelectInst()
3609 return replaceOperand(SI, 1, S); in visitSelectInst()
3614 return replaceOperand(SI, 2, S); in visitSelectInst()
3617 if (Instruction *R = foldSelectOfBools(SI)) in visitSelectInst()
3652 auto *SIFPOp = dyn_cast<FPMathOperator>(&SI); in visitSelectInst()
3673 return replaceInstUsesWith(SI, NewSel); in visitSelectInst()
3706 SI, SIFPOp->hasNoSignedZeros())) in visitSelectInst()
3707 return replaceInstUsesWith(SI, Cmp0); in visitSelectInst()
3718 if (match(&SI, m_OrdFMax(m_Value(X), m_Value(Y)))) in visitSelectInst()
3720 SI, Builder.CreateBinaryIntrinsic(Intrinsic::maxnum, X, Y, &SI)); in visitSelectInst()
3722 if (match(&SI, m_OrdFMin(m_Value(X), m_Value(Y)))) in visitSelectInst()
3724 SI, Builder.CreateBinaryIntrinsic(Intrinsic::minnum, X, Y, &SI)); in visitSelectInst()
3729 if (Instruction *Fabs = foldSelectWithFCmpToFabs(SI, *this)) in visitSelectInst()
3734 if (Instruction *Result = foldSelectInstWithICmp(SI, ICI)) in visitSelectInst()
3737 if (Instruction *Add = foldAddSubSelect(SI, Builder)) in visitSelectInst()
3739 if (Instruction *Add = foldOverflowingAddSubSelect(SI, Builder)) in visitSelectInst()
3741 if (Instruction *Or = foldSetClearBits(SI, Builder)) in visitSelectInst()
3743 if (Instruction *Mul = foldSelectZeroOrMul(SI, *this)) in visitSelectInst()
3750 if (Instruction *IV = foldSelectOpOp(SI, TI, FI)) in visitSelectInst()
3753 if (Instruction *I = foldSelectExtConst(SI)) in visitSelectInst()
3756 if (Instruction *I = foldSelectWithSRem(SI, *this, Builder)) in visitSelectInst()
3776 Builder.CreateSelect(CondVal, NewT, NewF, SI.getName() + ".idx", &SI); in visitSelectInst()
3789 if (Instruction *FoldI = foldSelectIntoOp(SI, TrueVal, FalseVal)) in visitSelectInst()
3794 SelectPatternResult SPR = matchSelectPattern(&SI, LHS, RHS, &CastOp); in visitSelectInst()
3800 RHS2, SI, SPF, RHS)) in visitSelectInst()
3804 RHS2, SI, SPF, LHS)) in visitSelectInst()
3828 cast<FPMathOperator>(SI.getCondition())->getFastMathFlags(); in visitSelectInst()
3833 Value *NewSI = Builder.CreateSelect(Cmp, LHS, RHS, SI.getName(), &SI); in visitSelectInst()
3835 return replaceInstUsesWith(SI, NewSI); in visitSelectInst()
3838 return replaceInstUsesWith(SI, NewCast); in visitSelectInst()
3844 if (auto *PN = dyn_cast<PHINode>(SI.getCondition())) in visitSelectInst()
3846 if (canSelectOperandBeMappingIntoPredBlock(TrueVal, SI) && in visitSelectInst()
3847 canSelectOperandBeMappingIntoPredBlock(FalseVal, SI)) in visitSelectInst()
3848 if (Instruction *NV = foldOpIntoPhi(SI, PN)) in visitSelectInst()
3857 return replaceOperand(SI, 1, V); in visitSelectInst()
3865 replaceOperand(SI, 0, And); in visitSelectInst()
3866 replaceOperand(SI, 1, TrueSI->getTrueValue()); in visitSelectInst()
3867 return &SI; in visitSelectInst()
3877 return replaceOperand(SI, 2, V); in visitSelectInst()
3882 replaceOperand(SI, 0, Or); in visitSelectInst()
3883 replaceOperand(SI, 2, FalseSI->getFalseValue()); in visitSelectInst()
3884 return &SI; in visitSelectInst()
3901 return &SI; in visitSelectInst()
3908 return &SI; in visitSelectInst()
3920 return &SI; in visitSelectInst()
3927 return &SI; in visitSelectInst()
3934 !InstCombiner::shouldAvoidAbsorbingNotIntoSelect(SI)) { in visitSelectInst()
3935 replaceOperand(SI, 0, NotCond); in visitSelectInst()
3936 SI.swapValues(); in visitSelectInst()
3937 SI.swapProfMetadata(); in visitSelectInst()
3938 return &SI; in visitSelectInst()
3941 if (Instruction *I = foldVectorSelect(SI)) in visitSelectInst()
3951 computeKnownBits(CondVal, Known, 0, &SI); in visitSelectInst()
3953 return replaceInstUsesWith(SI, TrueVal); in visitSelectInst()
3955 return replaceInstUsesWith(SI, FalseVal); in visitSelectInst()
3958 if (Instruction *BitCastSel = foldSelectCmpBitcasts(SI, Builder)) in visitSelectInst()
3962 if (Value *V = foldSelectCmpXchg(SI)) in visitSelectInst()
3963 return replaceInstUsesWith(SI, V); in visitSelectInst()
3965 if (Instruction *Select = foldSelectBinOpIdentity(SI, TLI, *this)) in visitSelectInst()
3968 if (Instruction *Funnel = foldSelectFunnelShift(SI, Builder)) in visitSelectInst()
3971 if (Instruction *Copysign = foldSelectToCopysign(SI, Builder)) in visitSelectInst()
3974 if (Instruction *PN = foldSelectToPhi(SI, DT, Builder)) in visitSelectInst()
3975 return replaceInstUsesWith(SI, PN); in visitSelectInst()
3977 if (Value *Fr = foldSelectWithFrozenICmp(SI, Builder)) in visitSelectInst()
3978 return replaceInstUsesWith(SI, Fr); in visitSelectInst()
3980 if (Value *V = foldRoundUpIntegerWithPow2Alignment(SI, Builder)) in visitSelectInst()
3981 return replaceInstUsesWith(SI, V); in visitSelectInst()
3993 return replaceInstUsesWith(SI, MaskedInst); in visitSelectInst()
4008 if (Value *V = simplifyAndInst(CondVal, Mask, SQ.getWithInstruction(&SI))) in visitSelectInst()
4015 return replaceInstUsesWith(SI, MaskedInst); in visitSelectInst()
4019 if (Instruction *I = foldSelectOfSymmetricSelect(SI, Builder)) in visitSelectInst()
4022 if (Instruction *I = foldNestedSelects(SI, Builder)) in visitSelectInst()
4029 if (sinkNotIntoOtherHandOfLogicalOp(SI)) in visitSelectInst()
4030 return &SI; in visitSelectInst()
4032 if (Instruction *I = foldBitCeil(SI, Builder)) in visitSelectInst()
4043 SQ.getWithInstruction(&SI))) in visitSelectInst()
4081 if (CondVal->getType() == SI.getType() && isKnownInversion(FalseVal, TrueVal)) in visitSelectInst()
4093 SimplifyQuery Q = SQ.getWithInstruction(&SI).getWithCondContext(CC); in visitSelectInst()
4099 return replaceOperand(SI, 1, in visitSelectInst()
4108 return replaceOperand(SI, 2, in visitSelectInst()