Lines Matching defs:IC
60 InstCombiner &IC) {
111 return IC.replaceOperand(Sel, IsEq ? 1 : 2, Y);
536 static Value *foldSelectICmpLshrAshr(const ICmpInst *IC, Value *TrueVal,
539 ICmpInst::Predicate Pred = IC->getPredicate();
540 Value *CmpLHS = IC->getOperand(0);
541 Value *CmpRHS = IC->getOperand(1);
565 return Builder.CreateAShr(X, Y, IC->getName(), IsExact);
584 static Value *foldSelectICmpAndOr(const ICmpInst *IC, Value *TrueVal,
590 TrueVal->getType()->isVectorTy() != IC->getType()->isVectorTy())
593 Value *CmpLHS = IC->getOperand(0);
594 Value *CmpRHS = IC->getOperand(1);
600 if (IC->isEquality()) {
610 IsEqualZero = IC->getPredicate() == ICmpInst::ICMP_EQ;
611 } else if (IC->getPredicate() == ICmpInst::ICMP_SLT ||
612 IC->getPredicate() == ICmpInst::ICMP_SGT) {
615 IsEqualZero = IC->getPredicate() == ICmpInst::ICMP_SGT;
650 (IC->hasOneUse() + Or->hasOneUse()))
1031 InstCombiner &IC) {
1054 IC.replaceOperand(Sel, 0, IC.Builder.CreateICmp(CanonicalPred, LHS, RHS));
1075 InstCombiner &IC) {
1124 RHS = IC.Builder.CreateNeg(LHS);
1127 IC.replaceOperand(Sel, 2, RHS);
1131 IC.replaceOperand(Sel, 1, RHS);
1374 InstCombiner &IC) {
1426 InstCombiner::BuilderTy::InsertPointGuard Guard(IC.Builder);
1427 IC.Builder.SetInsertPoint(&Sel);
1430 Value *NewCmp = IC.Builder.CreateICmp(Pred, X, FlippedStrictness->second,
1432 IC.replaceOperand(Sel, 0, NewCmp);
2016 SelectInst &Sel, InstCombiner &IC) {
2030 return IC.replaceOperand(Sel, 0, IC.Builder.CreateVectorSplat(NumElts, Cond));