Lines Matching refs:SelectInst

55 static Instruction *foldSelectBinOpIdentity(SelectInst &Sel,  in foldSelectBinOpIdentity()
122 static Value *foldSelectICmpAnd(SelectInst &Sel, ICmpInst *Cmp, in foldSelectICmpAnd()
271 Instruction *InstCombinerImpl::foldSelectOpOp(SelectInst &SI, Instruction *TI, in foldSelectOpOp()
510 Instruction *InstCombinerImpl::foldSelectIntoOp(SelectInst &SI, Value *TrueVal, in foldSelectIntoOp()
514 auto TryFoldSelectIntoOp = [&](SelectInst &SI, Value *TrueVal, in foldSelectIntoOp()
818 static Instruction *foldSetClearBits(SelectInst &Sel, in foldSetClearBits()
858 static Instruction *foldSelectZeroOrMul(SelectInst &SI, InstCombinerImpl &IC) { in foldSelectZeroOrMul()
1286 Instruction *InstCombinerImpl::foldSelectValueEquivalence(SelectInst &Sel, in foldSelectValueEquivalence()
1393 static Value *canonicalizeClampLike(SelectInst &Sel0, ICmpInst &Cmp0, in canonicalizeClampLike()
1410 if (!isa<SelectInst>(Sel1)) { in canonicalizeClampLike()
1572 tryToReuseConstantFromSelectInComparison(SelectInst &Sel, ICmpInst &Cmp, in tryToReuseConstantFromSelectInComparison()
1668 static Value *foldSelectInstWithICmpConst(SelectInst &SI, ICmpInst *ICI, in foldSelectInstWithICmpConst()
1717 static Instruction *foldSelectICmpEq(SelectInst &SI, ICmpInst *ICI, in foldSelectICmpEq()
1821 Instruction *InstCombinerImpl::foldSelectInstWithICmp(SelectInst &SI, in foldSelectInstWithICmp()
1975 const SelectInst &SI) { in canSelectOperandBeMappingIntoPredBlock()
2023 static Instruction *foldAddSubSelect(SelectInst &SI, in foldAddSubSelect()
2099 foldOverflowingAddSubSelect(SelectInst &SI, InstCombiner::BuilderTy &Builder) { in foldOverflowingAddSubSelect()
2213 Instruction *InstCombinerImpl::foldSelectExtConst(SelectInst &Sel) { in foldSelectExtConst()
2258 static Instruction *canonicalizeSelectToShuffle(SelectInst &SI) { in canonicalizeSelectToShuffle()
2297 static Instruction *canonicalizeScalarSelectOfVecs(SelectInst &Sel, in canonicalizeScalarSelectOfVecs()
2318 static Instruction *foldSelectCmpBitcasts(SelectInst &Sel, in foldSelectCmpBitcasts()
2385 static Value *foldSelectCmpXchg(SelectInst &SI) { in foldSelectCmpXchg()
2402 if (auto *Select = dyn_cast<SelectInst>(SI.user_back())) in foldSelectCmpXchg()
2438 static Instruction *foldSelectFunnelShift(SelectInst &Sel, in foldSelectFunnelShift()
2509 static Instruction *foldSelectToCopysign(SelectInst &Sel, in foldSelectToCopysign()
2552 Instruction *InstCombinerImpl::foldVectorSelect(SelectInst &Sel) { in foldVectorSelect()
2637 static Instruction *foldSelectToPhiImpl(SelectInst &Sel, BasicBlock *BB, in foldSelectToPhiImpl()
2698 static Instruction *foldSelectToPhi(SelectInst &Sel, const DominatorTree &DT, in foldSelectToPhi()
2719 static Instruction *foldSelectWithSRem(SelectInst &SI, InstCombinerImpl &IC, in foldSelectWithSRem()
2768 static Value *foldSelectWithFrozenICmp(SelectInst &Sel, InstCombiner::BuilderTy &Builder) { in foldSelectWithFrozenICmp()
2795 static Value *simplifyNestedSelectsUsingImpliedCond(SelectInst &SI, in simplifyNestedSelectsUsingImpliedCond()
2810 SelectInst &SI, in foldAndOrOfSelectUsingImpliedCond()
2817 return SelectInst::Create(Op, in foldAndOrOfSelectUsingImpliedCond()
2825 static Instruction *foldSelectWithFCmpToFabs(SelectInst &SI, in foldSelectWithFCmpToFabs()
2951 foldRoundUpIntegerWithPow2Alignment(SelectInst &SI, in foldRoundUpIntegerWithPow2Alignment()
3023 foldSelectOfSymmetricSelect(SelectInst &OuterSelVal, in foldSelectOfSymmetricSelect()
3041 return SelectInst::Create(Xor, InnerFalseVal, InnerTrueVal); in foldSelectOfSymmetricSelect()
3051 static Instruction *foldNestedSelects(SelectInst &OuterSelVal, in foldNestedSelects()
3117 return SelectInst::Create(InnerSel.Cond, in foldNestedSelects()
3122 Instruction *InstCombinerImpl::foldSelectOfBools(SelectInst &SI) { in foldSelectOfBools()
3165 bool CondLogicAnd = isa<SelectInst>(CondVal); in foldSelectOfBools()
3166 bool FalseLogicAnd = isa<SelectInst>(FalseVal); in foldSelectOfBools()
3174 return SelectInst::Create(Common, InnerSel, Zero); in foldSelectOfBools()
3213 bool CondLogicOr = isa<SelectInst>(CondVal); in foldSelectOfBools()
3214 bool TrueLogicOr = isa<SelectInst>(TrueVal); in foldSelectOfBools()
3222 return SelectInst::Create(Common, One, InnerSel); in foldSelectOfBools()
3243 return SelectInst::Create(NotCond, FalseVal, Zero); in foldSelectOfBools()
3248 return SelectInst::Create(NotCond, One, TrueVal); in foldSelectOfBools()
3283 return SelectInst::Create(TrueVal, OrV, Zero); in foldSelectOfBools()
3289 return SelectInst::Create(FalseVal, OrV, Zero); in foldSelectOfBools()
3296 return SelectInst::Create(TrueVal, One, AndV); in foldSelectOfBools()
3303 return SelectInst::Create(FalseVal, One, AndV); in foldSelectOfBools()
3364 auto *SelCond = dyn_cast<SelectInst>(CondVal); in foldSelectOfBools()
3365 auto *SelFVal = dyn_cast<SelectInst>(FalseVal); in foldSelectOfBools()
3371 return SelectInst::Create(C, A, B); in foldSelectOfBools()
3380 auto *SelCond = dyn_cast<SelectInst>(CondVal); in foldSelectOfBools()
3381 auto *SelFVal = dyn_cast<SelectInst>(FalseVal); in foldSelectOfBools()
3387 return SelectInst::Create(C, B, A); in foldSelectOfBools()
3490 static Instruction *foldBitCeil(SelectInst &SI, IRBuilderBase &Builder) { in foldBitCeil()
3584 Instruction *InstCombinerImpl::visitSelectInst(SelectInst &SI) { in visitSelectInst()
3851 if (SelectInst *TrueSI = dyn_cast<SelectInst>(TrueVal)) { in visitSelectInst()
3871 if (SelectInst *FalseSI = dyn_cast<SelectInst>(FalseVal)) { in visitSelectInst()
3897 if (auto *TrueBOSI = dyn_cast<SelectInst>(TrueBO->getOperand(0))) { in visitSelectInst()
3904 if (auto *TrueBOSI = dyn_cast<SelectInst>(TrueBO->getOperand(1))) { in visitSelectInst()
3916 if (auto *FalseBOSI = dyn_cast<SelectInst>(FalseBO->getOperand(0))) { in visitSelectInst()
3923 if (auto *FalseBOSI = dyn_cast<SelectInst>(FalseBO->getOperand(1))) { in visitSelectInst()
4044 return SelectInst::Create(A, IsAnd ? V : TrueVal, IsAnd ? FalseVal : V); in visitSelectInst()
4050 return SelectInst::Create(A, IsAnd ? V : TrueVal, in visitSelectInst()