Lines Matching defs:IC
47 static Value *simplifyValueKnownNonZero(Value *V, InstCombinerImpl &IC,
61 A = IC.Builder.CreateSub(A, B);
62 return IC.Builder.CreateShl(One, A);
69 IC.isKnownToBeAPowerOfTwo(I->getOperand(0), false, 0, &CxtI)) {
72 if (Value *V2 = simplifyValueKnownNonZero(I->getOperand(0), IC, CxtI)) {
73 IC.replaceOperand(*I, 0, V2);
591 auto createPowiExpr = [](BinaryOperator &I, InstCombinerImpl &IC, Value *X,
593 InstCombiner::BuilderTy &Builder = IC.Builder;
1592 InstCombinerImpl &IC) {
1602 Value *NarrowOp = IC.Builder.CreateBinOp(Opcode, X, Y);
1610 Constant *TruncC = IC.getLosslessUnsignedTrunc(C, X->getType());
1616 return new ZExtInst(IC.Builder.CreateBinOp(Opcode, X, TruncC), Ty);
1621 Constant *TruncC = IC.getLosslessUnsignedTrunc(C, X->getType());
1627 return new ZExtInst(IC.Builder.CreateBinOp(Opcode, TruncC, X), Ty);
2022 InstCombiner::BuilderTy &B, InstCombinerImpl *IC) {
2037 IC->replaceInstUsesWith(*I, FDiv);
2038 IC->eraseInstFromFunction(*I);
2054 IC->replaceInstUsesWith(*I, FSqrt);
2055 IC->eraseInstFromFunction(*I);
2070 return IC->replaceInstUsesWith(*X, FMul);
2224 InstCombinerImpl &IC) {
2287 return IC.replaceInstUsesWith(I, ConstantInt::getNullValue(I.getType()));