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

Lines Matching refs:Builder

179     FAddCombine(InstCombiner::BuilderTy &B) : Builder(B) {}
211 InstCombiner::BuilderTy &Builder;
659 Value *V = Builder.CreateFSub(Opnd0, Opnd1);
666 Value *NewV = Builder.CreateFNeg(V);
673 Value *V = Builder.CreateFAdd(Opnd0, Opnd1);
680 Value *V = Builder.CreateFMul(Opnd0, Opnd1);
767 InstCombiner::BuilderTy &Builder) {
791 Value *NewAnd = Builder.CreateAnd(Z, *C1);
792 return Builder.CreateSub(RHS, NewAnd, "sub");
796 Value *NewOr = Builder.CreateOr(Z, ~(*C1));
797 return Builder.CreateSub(RHS, NewOr, "sub");
816 Value *NewOr = Builder.CreateOr(Z, ~(*C2));
817 return Builder.CreateSub(RHS, NewOr, "sub");
824 InstCombiner::BuilderTy &Builder) {
840 return new ZExtInst(Builder.CreateNUWAdd(X, NewC), Ty);
849 Value *WideX = Builder.CreateSExt(X, Ty);
856 Value *WideX = Builder.CreateZExt(X, Ty);
884 return BinaryOperator::CreateAdd(Builder.CreateNot(Y), X);
934 return new ZExtInst(Builder.CreateNot(X), Ty);
941 Value *NotX = Builder.CreateNot(X);
1045 return IsSigned ? Builder.CreateSRem(X, NewDivisor, "srem")
1046 : Builder.CreateURem(X, NewDivisor, "urem");
1061 InstCombiner::BuilderTy &Builder) {
1067 Value *NotMask = Builder.CreateShl(MinusOne, NBits, "notmask");
1197 Builder.Insert(NewAShr);
1220 if (Instruction *X = foldNoWrapAdd(I, Builder))
1250 Value *NewShl = Builder.CreateShl(XorLHS, ShAmt, "sext");
1285 return BinaryOperator::CreateNeg(Builder.CreateAdd(A, B));
1295 if (Value *V = checkForNegativeOperand(I, Builder))
1308 return BinaryOperator::CreateAdd(A, Builder.CreateShl(RHS, 1, "reass.add"));
1312 return BinaryOperator::CreateAdd(A, Builder.CreateShl(LHS, 1, "reass.add"));
1354 Value *NewAdd = Builder.CreateAdd(X, CRHS, LHS->getName());
1417 if (Instruction *V = canonicalizeLowbitMask(I, Builder))
1432 InstCombiner::BuilderTy &Builder) {
1441 Value *XY = Builder.CreateFSubFMF(X, Y, &I);
1442 Value *MulZ = Builder.CreateFMulFMF(Z, XY, &I);
1448 InstCombiner::BuilderTy &Builder) {
1454 if (Instruction *Lerp = factorizeLerp(I, Builder))
1476 Value *XY = IsFAdd ? Builder.CreateFAddFMF(X, Y, &I)
1477 : Builder.CreateFSubFMF(X, Y, &I);
1514 Value *XY = Builder.CreateFMulFMF(X, Y, &I);
1523 Value *XY = Builder.CreateFDivFMF(X, Y, &I);
1561 Value *NewAdd = Builder.CreateNSWAdd(LHSIntVal, CI, "addconv");
1579 Value *NewAdd = Builder.CreateNSWAdd(LHSIntVal, RHSIntVal, "addconv");
1591 if (Instruction *F = factorizeFAddFSub(I, Builder))
1593 if (Value *V = FAddCombine(Builder).simplify(&I))
1685 Result = Builder.CreateSub(Result, Offset);
1690 Result = Builder.CreateNeg(Result, "diff.neg");
1692 return Builder.CreateIntCast(Result, Ty, true);
1777 return BinaryOperator::CreateAdd(Builder.CreateNot(Op1), X);
1785 Value *XZ = Builder.CreateAdd(X, Z);
1786 Value *YW = Builder.CreateAdd(Y, Op1);
1799 Value *Sub = Builder.CreateSub(V0, V1);
1800 Value *Rdx = Builder.CreateIntrinsic(
1873 return BinaryOperator::CreateNeg(Builder.CreateXor(A, B));
1890 return BinaryOperator::CreateNeg(Builder.CreateAnd(A, B));
1898 Y, Builder.CreateNot(Op1, Op1->getName() + ".not"));
1906 return BinaryOperator::CreateNeg(Builder.CreateAnd(
1907 Op1, Builder.CreateAdd(X, Constant::getAllOnesValue(I.getType()))));
1916 Builder.CreateAnd(Op1, Builder.CreateNot(C)));
1955 [Builder = &Builder, Op1](Value *OtherHandOfSelect) {
1956 return Builder->CreateSub(OtherHandOfSelect,
1962 [Builder = &Builder, Op0](Value *OtherHandOfSelect) {
1963 return Builder->CreateSub(/*OtherHandOfSub=*/Op0,
1973 Op0, Builder.CreateNot(Y, Y->getName() + ".not"));
1999 Value *Not = Builder.CreateNot(MinMax);
2038 Value *Cmp = Builder.CreateICmpSLT(A, ConstantInt::getNullValue(Ty));
2040 Value *Neg = Builder.CreateNeg(A, "", I.hasNoUnsignedWrap(),
2082 InstCombiner::BuilderTy &Builder) {
2089 return BinaryOperator::CreateFMulFMF(Builder.CreateFNegFMF(X, &I), Y, &I);
2092 return BinaryOperator::CreateFDivFMF(Builder.CreateFNegFMF(X, &I), Y, &I);
2114 if (Instruction *R = hoistFNegAboveFMulFDiv(I, Builder))
2143 if (Instruction *R = hoistFNegAboveFMulFDiv(I, Builder))
2158 Value *NewSub = Builder.CreateFSubFMF(Y, X, &I);
2166 Value *FAdd = Builder.CreateFAddFMF(X, Op1, &I);
2189 return BinaryOperator::CreateFAddFMF(Op0, Builder.CreateFPTrunc(Y, Ty), &I);
2193 return BinaryOperator::CreateFAddFMF(Op0, Builder.CreateFPExt(Y, Ty), &I);
2199 Value *FMul = Builder.CreateFMulFMF(X, Y, &I);
2206 Value *FDiv = Builder.CreateFDivFMF(X, Y, &I);
2241 Value *XZ = Builder.CreateFAddFMF(X, Z, &I);
2242 Value *YW = Builder.CreateFAddFMF(Y, Op1, &I);
2256 Value *Sub = Builder.CreateFSubFMF(V0, V1, &I);
2257 Value *Rdx = Builder.CreateIntrinsic(
2263 if (Instruction *F = factorizeFAddFSub(I, Builder))
2270 if (Value *V = FAddCombine(Builder).simplify(&I))
2275 Value *FAdd = Builder.CreateFAddFMF(Y, Op1, &I);