• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/contrib/llvm-project/llvm/lib/Transforms/InstCombine/

Lines Matching defs:Builder

63     A = IC.Builder.CreateSub(A, B);
64 return IC.Builder.CreateShl(One, A);
136 InstCombiner::BuilderTy &Builder) {
143 return Builder.CreateSelect(Cond, OtherOp, Builder.CreateNeg(OtherOp));
149 return Builder.CreateSelect(Cond, Builder.CreateNeg(OtherOp), OtherOp);
156 IRBuilder<>::FastMathFlagGuard FMFGuard(Builder);
157 Builder.setFastMathFlags(I.getFastMathFlags());
158 return Builder.CreateSelect(Cond, OtherOp, Builder.CreateFNeg(OtherOp));
166 IRBuilder<>::FastMathFlagGuard FMFGuard(Builder);
167 Builder.setFastMathFlags(I.getFastMathFlags());
168 return Builder.CreateSelect(Cond, Builder.CreateFNeg(OtherOp), OtherOp);
252 Sub = Builder.CreateSub(X, Y, "suba");
254 Sub = Builder.CreateSub(Builder.CreateNeg(C1), Y, "subc");
267 if (Value *FoldedMul = foldMulSelectToNegate(I, Builder))
276 Value *Mul = Builder.CreateMul(C1, Op1);
280 return BinaryOperator::CreateAdd(Builder.CreateMul(X, Op1), Mul);
312 return BinaryOperator::CreateNeg(Builder.CreateMul(X, Y));
340 Value *Rem = Builder.CreateBinOp(RemOpc, X, DivOp1);
380 Value *And = Builder.CreateAnd(X, Y, "mulbool");
390 Value *And = Builder.CreateAnd(X, Y, "mulbool");
409 return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op1);
411 return BinaryOperator::CreateAnd(Builder.CreateAShr(X, *C), Op0);
453 IRBuilder<>::FastMathFlagGuard FMFGuard(Builder);
454 Builder.setFastMathFlags(I.getFastMathFlags());
455 Value *XY = Builder.CreateBinOp(Opcode, X, Y);
456 Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs, XY);
479 if (Value *FoldedMul = foldMulSelectToNegate(I, Builder))
530 Value *XC = Builder.CreateFMulFMF(X, C, &I);
536 Value *XC = Builder.CreateFMulFMF(X, C, &I);
545 Value *NewFMul = Builder.CreateFMulFMF(X, Z, &I);
555 Value *XY = Builder.CreateFMulFMF(X, Y, &I);
556 Value *Sqrt = Builder.CreateUnaryIntrinsic(Intrinsic::sqrt, XY, &I);
568 Value *XX = Builder.CreateFMulFMF(X, X, &I);
574 Value *XX = Builder.CreateFMulFMF(X, X, &I);
584 Value *XY = Builder.CreateFAddFMF(X, Y, &I);
585 Value *Exp = Builder.CreateUnaryIntrinsic(Intrinsic::exp, XY, &I);
594 Value *XY = Builder.CreateFAddFMF(X, Y, &I);
595 Value *Exp2 = Builder.CreateUnaryIntrinsic(Intrinsic::exp2, XY, &I);
608 Value *XX = Builder.CreateFMulFMF(Op1, Op1, &I);
613 Value *XX = Builder.CreateFMulFMF(Op0, Op0, &I);
632 Value *Log2 = Builder.CreateUnaryIntrinsic(Intrinsic::log2, X, &I);
633 Value *LogXTimesY = Builder.CreateFMulFMF(Log2, Y, &I);
833 Value *Inc = Builder.CreateAdd(Op1, Op0);
834 Value *Cmp = Builder.CreateICmpULT(Inc, ConstantInt::get(Ty, 3));
839 return new ZExtInst(Builder.CreateICmpEQ(Op1, Op0), Ty);
935 N = IC.Builder.CreateAdd(N, Log2Base);
937 N = IC.Builder.CreateZExt(N, Op1->getType());
983 InstCombiner::BuilderTy &Builder) {
993 Value *NarrowOp = Builder.CreateBinOp(Opcode, X, Y);
1009 Value *NarrowOp = isa<Constant>(D) ? Builder.CreateBinOp(Opcode, X, TruncC)
1010 : Builder.CreateBinOp(Opcode, TruncC, X);
1050 Value *Cmp = Builder.CreateICmpUGE(Op0, Op1);
1055 Value *Cmp = Builder.CreateICmpEQ(Op0, ConstantInt::getAllOnesValue(Ty));
1059 if (Instruction *NarrowDiv = narrowUDivURem(I, Builder))
1133 return new ZExtInst(Builder.CreateICmpEQ(Op0, Op1), I.getType());
1156 Value *NarrowOp = Builder.CreateSDiv(Op0Src, NarrowDivisor);
1176 Builder.CreateSDiv(X, Y, I.getName(), I.isExact()));
1299 Value *YZ = Builder.CreateFMulFMF(Y, Op1, &I);
1305 Value *YZ = Builder.CreateFMulFMF(Y, Op0, &I);
1361 Value *V = Builder.CreateBinaryIntrinsic(
1421 if (Instruction *NarrowRem = narrowUDivURem(I, Builder))
1431 Value *Add = Builder.CreateAdd(Op1, N1);
1437 Value *Cmp = Builder.CreateICmpNE(Op1, ConstantInt::get(Ty, 1));
1443 Value *Cmp = Builder.CreateICmpULT(Op0, Op1);
1444 Value *Sub = Builder.CreateSub(Op0, Op1);
1454 Value *Cmp = Builder.CreateICmpEQ(Op0, ConstantInt::getAllOnesValue(Ty));
1484 return BinaryOperator::CreateNSWNeg(Builder.CreateSRem(X, Y));