Lines Matching defs:IC
542 InstCombiner &IC) {
621 IC.replaceInstUsesWith(*cast<Instruction>(Val), NewVal);
624 IC.addToWorklist(cast<Instruction>(Val));
636 InstCombiner &IC) {
665 Value *NewRHS = rewriteGEPAsOffset(RHS, PtrBase, NW, DL, Nodes, IC);
672 IC.Builder.getInt(Offset), NewRHS);
1089 InstCombinerImpl &IC) {
1119 if (IC.ComputeMaxSignificantBits(A, 0, &I) > NewWidth ||
1120 IC.ComputeMaxSignificantBits(B, 0, &I) > NewWidth)
1149 InstCombiner::BuilderTy &Builder = IC.Builder;
1163 IC.replaceInstUsesWith(*OrigAdd, ZExt);
1164 IC.eraseInstFromFunction(*OrigAdd);
4469 InstCombiner &IC) {
4549 IC.getFreelyInverted(X, X->hasOneUse(), &IC.Builder)) {
4567 IC.getFreelyInverted(M, M->hasOneUse(), &IC.Builder)) {
4585 return IC.Builder.CreateICmp(DstPred, X, M);
4946 InstCombinerImpl &IC) {
4972 IC.getFreelyInverted(Op1, !Op1->hasNUsesOrMore(3), &IC.Builder))
4973 return new ICmpInst(Pred, IC.Builder.CreateOr(A, NotOp1),
4976 if (auto *NotA = IC.getFreelyInverted(A, A->hasOneUse(), &IC.Builder))
4977 return new ICmpInst(Pred, IC.Builder.CreateAnd(Op1, NotA),
4984 KnownBits KnownY = IC.computeKnownBits(A, /*Depth=*/0, &I);
4998 if (isKnownNegative(Op1, IC.getSimplifyQuery().getWithInstruction(&I)))
5008 InstCombinerImpl &IC) {
5031 IC.getFreelyInverted(Op1, !Op1->hasNUsesOrMore(3), &IC.Builder))
5032 return new ICmpInst(Pred, IC.Builder.CreateAnd(A, NotOp1),
5035 if (Value *NotA = IC.getFreelyInverted(A, A->hasOneUse(), &IC.Builder))
5036 return new ICmpInst(Pred, IC.Builder.CreateOr(Op1, NotA),
5043 InstCombinerImpl &IC) {
6353 InstCombinerImpl &IC) {
6443 InstCombiner::BuilderTy &Builder = IC.Builder;
6455 IC.addToWorklist(MulInstr);
6467 IC.replaceInstUsesWith(*TI, Mul);
6477 IC.replaceInstUsesWith(*BO, Zext);
6481 IC.addToWorklist(cast<Instruction>(U));
6566 auto *IC = dyn_cast<ICmpInst>(BI->getCondition());
6567 if (!IC || (IC->getOperand(0) != SI && IC->getOperand(1) != SI))
7998 static Instruction *foldFabsWithFcmpZero(FCmpInst &I, InstCombinerImpl &IC) {
8042 auto replacePredAndOp0 = [&IC](FCmpInst *I, FCmpInst::Predicate P, Value *X) {
8044 return IC.replaceOperand(*I, 0, X);
8099 static Instruction *foldSqrtWithFcmpZero(FCmpInst &I, InstCombinerImpl &IC) {
8109 return IC.replaceOperand(I, 0, X);
8134 return IC.replaceOperand(I, 0, X);
8226 InstCombinerImpl &IC) {
8252 return IC.replaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
8263 return IC.replaceInstUsesWith(I, ConstantInt::getFalse(I.getType()));
8268 return IC.replaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));
8279 return IC.replaceInstUsesWith(I, ConstantInt::getTrue(I.getType()));