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

Lines Matching refs:Builder

194   Value *Src = Builder.CreateBitCast(MI->getArgOperand(1), NewSrcPtrTy);
195 Value *Dest = Builder.CreateBitCast(MI->getArgOperand(0), NewDstPtrTy);
196 LoadInst *L = Builder.CreateLoad(IntType, Src);
209 StoreInst *S = Builder.CreateStore(L, Dest);
277 Dest = Builder.CreateBitCast(Dest, NewDstPtrTy);
281 StoreInst *S = Builder.CreateStore(ConstantInt::get(ITy, Fill), Dest,
296 InstCombiner::BuilderTy &Builder) {
392 Amt = Builder.CreateZExtOrTrunc(Amt, SVT);
393 Amt = Builder.CreateVectorSplat(VWidth, Amt);
394 return (LogicalShift ? (ShiftLeft ? Builder.CreateShl(Vec, Amt)
395 : Builder.CreateLShr(Vec, Amt))
396 : Builder.CreateAShr(Vec, Amt));
402 return Builder.CreateAShr(Vec, Builder.CreateVectorSplat(VWidth, Amt));
420 Amt = Builder.CreateShuffleVector(Amt, Amt, ZeroSplat);
421 return (LogicalShift ? (ShiftLeft ? Builder.CreateShl(Vec, Amt)
422 : Builder.CreateLShr(Vec, Amt))
423 : Builder.CreateAShr(Vec, Amt));
463 auto ShiftVec = Builder.CreateVectorSplat(VWidth, ShiftAmt);
466 return Builder.CreateShl(Vec, ShiftVec);
469 return Builder.CreateLShr(Vec, ShiftVec);
471 return Builder.CreateAShr(Vec, ShiftVec);
478 InstCombiner::BuilderTy &Builder) {
536 return (LogicalShift ? (ShiftLeft ? Builder.CreateShl(Vec, Amt)
537 : Builder.CreateLShr(Vec, Amt))
538 : Builder.CreateAShr(Vec, Amt));
605 return Builder.CreateShl(Vec, ShiftVec);
608 return Builder.CreateLShr(Vec, ShiftVec);
610 return Builder.CreateAShr(Vec, ShiftVec);
614 InstCombiner::BuilderTy &Builder, bool IsSigned) {
660 Arg0 = Builder.CreateSelect(Builder.CreateICmpSLT(Arg0, MinC), MinC, Arg0);
661 Arg1 = Builder.CreateSelect(Builder.CreateICmpSLT(Arg1, MinC), MinC, Arg1);
662 Arg0 = Builder.CreateSelect(Builder.CreateICmpSGT(Arg0, MaxC), MaxC, Arg0);
663 Arg1 = Builder.CreateSelect(Builder.CreateICmpSGT(Arg1, MaxC), MaxC, Arg1);
673 auto *Shuffle = Builder.CreateShuffleVector(Arg0, Arg1, PackMask);
676 return Builder.CreateTrunc(Shuffle, ResTy);
680 InstCombiner::BuilderTy &Builder) {
700 Type *IntegerTy = Builder.getIntNTy(NumElts);
702 Value *Res = Builder.CreateBitCast(Arg, IntegerVecTy);
703 Res = Builder.CreateICmpSLT(Res, Constant::getNullValue(IntegerVecTy));
704 Res = Builder.CreateBitCast(Res, IntegerTy);
705 Res = Builder.CreateZExtOrTrunc(Res, ResTy);
710 InstCombiner::BuilderTy &Builder) {
722 Value *UAdd = Builder.CreateIntrinsic(Intrinsic::uadd_with_overflow, OpTy,
725 Value *UAddResult = Builder.CreateExtractValue(UAdd, 0);
726 Value *UAddOV = Builder.CreateZExt(Builder.CreateExtractValue(UAdd, 1),
727 Builder.getInt8Ty());
729 Res = Builder.CreateInsertValue(Res, UAddOV, 0);
730 return Builder.CreateInsertValue(Res, UAddResult, 1);
737 InstCombiner::BuilderTy &Builder) {
790 return Builder.CreateShuffleVector(II.getArgOperand(0), V1, ShuffleMask);
797 InstCombiner::BuilderTy &Builder) {
853 Value *SV = Builder.CreateShuffleVector(
854 Builder.CreateBitCast(Op0, ShufTy),
856 return Builder.CreateBitCast(SV, II.getType());
873 return Builder.CreateCall(F, Args);
888 InstCombiner::BuilderTy &Builder) {
932 Value *SV = Builder.CreateShuffleVector(Builder.CreateBitCast(Op0, ShufTy),
933 Builder.CreateBitCast(Op1, ShufTy),
935 return Builder.CreateBitCast(SV, II.getType());
972 return Builder.CreateCall(F, Args);
980 InstCombiner::BuilderTy &Builder) {
1020 return Builder.CreateShuffleVector(V1, V2, makeArrayRef(Indexes, NumElts));
1025 InstCombiner::BuilderTy &Builder) {
1068 return Builder.CreateShuffleVector(V1, V2, makeArrayRef(Indexes, NumElts));
1073 InstCombiner::BuilderTy &Builder) {
1103 return Builder.CreateShuffleVector(V1, V2, makeArrayRef(Indexes, Size));
1116 return Builder.CreateAlignedLoad(II.getType(), LoadPtr, Alignment,
1124 Value *LI = Builder.CreateAlignedLoad(II.getType(), LoadPtr, Alignment,
1126 return Builder.CreateSelect(II.getArgOperand(2), LI, II.getArgOperand(3));
1219 Result = IC.Builder.CreateLaunderInvariantGroup(StrippedInvariantGroupsArg);
1221 Result = IC.Builder.CreateStripInvariantGroup(StrippedInvariantGroupsArg);
1227 Result = IC.Builder.CreateAddrSpaceCast(Result, II.getType());
1229 Result = IC.Builder.CreateBitCast(Result, II.getType());
1286 return IC.replaceOperand(II, 1, IC.Builder.getTrue());
1322 auto *Cttz = IC.Builder.CreateCall(F, {X, IC.Builder.getFalse()});
1324 return IC.replaceInstUsesWith(II, IC.Builder.CreateSub(Bw, Cttz));
1332 return CallInst::Create(F, {X, IC.Builder.getFalse()});
1383 Value *PtrCast = IC.Builder.CreateBitCast(Ptr, VecPtrTy, "castvec");
1391 IC.Builder.CreateMaskedLoad(PtrCast, Align(1), BoolMask, ZeroVec);
1426 Value *PtrCast = IC.Builder.CreateBitCast(Ptr, VecPtrTy, "castvec");
1432 IC.Builder.CreateMaskedStore(Vec, PtrCast, Align(1), BoolMask);
1465 InstCombiner::BuilderTy &Builder) {
1495 return Builder.CreateShuffleVector(V1, V2, makeArrayRef(Indexes));
1503 InstCombiner::BuilderTy &Builder) {
1515 auto *BCastInst = Builder.CreateBitCast(II.getArgOperand(0),
1517 return Builder.CreateAlignedLoad(II.getType(), BCastInst, Align(Alignment));
1982 Value *V = Builder.CreateLShr(X, CV);
2116 *II, Builder.CreateBinaryIntrinsic(
2149 *II, Builder.CreateBinaryIntrinsic(Intrinsic::sadd_with_overflow,
2197 *II, Builder.CreateBinaryIntrinsic(
2230 *II, Builder.CreateBinaryIntrinsic(
2268 Value *NewCall = Builder.CreateBinaryIntrinsic(NewIID, X, Y, II);
2299 Instruction *NewCall = Builder.CreateBinaryIntrinsic(
2319 CallInst *NewCall = Builder.CreateCall(F, { ExtSrc0, ExtSrc1 });
2330 BuilderTy::FastMathFlagGuard Guard(Builder);
2331 Builder.setFastMathFlags(II->getFastMathFlags());
2332 Value *Mul = Builder.CreateFMul(II->getArgOperand(0),
2334 Value *Add = Builder.CreateFAdd(Mul, II->getArgOperand(2));
2396 Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs,
2405 Value *Fabs = Builder.CreateUnaryIntrinsic(Intrinsic::fabs,
2407 return replaceInstUsesWith(*II, Builder.CreateFNegFMF(Fabs, II));
2424 CallInst *Call0 = Builder.CreateCall(II->getCalledFunction(), {LHS});
2425 CallInst *Call1 = Builder.CreateCall(II->getCalledFunction(), {RHS});
2441 Value *NarrowII = Builder.CreateUnaryIntrinsic(IID, ExtSrc, II);
2461 Value *NewSin = Builder.CreateUnaryIntrinsic(Intrinsic::sin, X, II);
2473 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(0),
2481 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(0),
2492 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(1), OpPtrTy);
2500 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(1), OpPtrTy);
2508 VectorType::get(Builder.getFloatTy(),
2510 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(0),
2512 Value *Load = Builder.CreateLoad(VTy, Ptr);
2520 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(0),
2530 Builder.getFloatTy(),
2532 Value *TOp = Builder.CreateFPTrunc(II->getArgOperand(0), VTy);
2534 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(1), OpPtrTy);
2544 Value *Ptr = Builder.CreateBitCast(II->getArgOperand(1), OpPtrTy);
2693 if (Value *V = simplifyX86movmsk(*II, Builder))
2795 V = Builder.CreateFAdd(Arg0, Arg1);
2799 V = Builder.CreateFSub(Arg0, Arg1);
2803 V = Builder.CreateFMul(Arg0, Arg1);
2807 V = Builder.CreateFDiv(Arg0, Arg1);
2831 Value *LHS = Builder.CreateExtractElement(Arg0, (uint64_t)0);
2832 Value *RHS = Builder.CreateExtractElement(Arg1, (uint64_t)0);
2839 V = Builder.CreateFAdd(LHS, RHS);
2843 V = Builder.CreateFSub(LHS, RHS);
2847 V = Builder.CreateFMul(LHS, RHS);
2851 V = Builder.CreateFDiv(LHS, RHS);
2862 Builder.getInt1Ty(),
2864 Mask = Builder.CreateBitCast(Mask, MaskTy);
2865 Mask = Builder.CreateExtractElement(Mask, (uint64_t)0);
2867 Value *Passthru = Builder.CreateExtractElement(II->getArgOperand(2),
2869 V = Builder.CreateSelect(Mask, V, Passthru);
2873 V = Builder.CreateInsertElement(Arg0, V, (uint64_t)0);
2910 if (Value *V = simplifyX86immShift(*II, Builder))
2941 if (Value *V = simplifyX86immShift(*II, Builder))
2983 if (Value *V = simplifyX86varShift(*II, Builder))
2993 if (Value *V = simplifyX86pack(*II, Builder, true))
3003 if (Value *V = simplifyX86pack(*II, Builder, false))
3049 if (Value *V = simplifyX86insertps(*II, Builder))
3072 if (Value *V = simplifyX86extrq(*II, Op0, CILength, CIIndex, Builder))
3104 if (Value *V = simplifyX86extrq(*II, Op0, CILength, CIIndex, Builder))
3134 if (Value *V = simplifyX86insertq(*II, Op0, Op1, Len, Idx, Builder))
3165 if (Value *V = simplifyX86insertq(*II, Op0, Op1, Len, Idx, Builder))
3229 Value *CastOp0 = Builder.CreateBitCast(Op0, Mask->getType());
3230 Value *CastOp1 = Builder.CreateBitCast(Op1, Mask->getType());
3231 Value *Sel = Builder.CreateSelect(BoolVec, CastOp1, CastOp0);
3242 if (Value *V = simplifyX86pshufb(*II, Builder))
3252 if (Value *V = simplifyX86vpermilvar(*II, Builder))
3270 if (Value *V = simplifyX86vpermv(*II, Builder))
3301 if (Value *V = simplifyX86addcarry(*II, Builder))
3328 Value *Op0 = Builder.CreateBitCast(II->getArgOperand(0),
3330 Value *Op1 = Builder.CreateBitCast(II->getArgOperand(1),
3351 Builder.CreateExtractElement(Idx < 16 ? Op0ToUse : Op1ToUse,
3352 Builder.getInt32(Idx&15));
3356 Result = Builder.CreateInsertElement(Result, ExtractedElts[Idx],
3357 Builder.getInt32(i));
3366 if (Value *V = simplifyNeonVld1(*II, MemAlign.value(), Builder))
3397 if (Value *V = simplifyNeonTbl1(*II, Builder))
3469 auto TrueVector = Builder.CreateVectorSplat(
3471 Builder.getTrue());
3615 Value *FCmp = Builder.CreateFCmpUNO(Src0, Src0);
3622 Value *FCmp = Builder.CreateFCmpOEQ(
3641 CallInst *NewCall = Builder.CreateCall(II->getCalledFunction(),
3750 Value *Shl = Builder.CreateShl(Src, IntSize - Offset - Width);
3751 Value *RightShift = Signed ? Builder.CreateAShr(Shl, IntSize - Width)
3752 : Builder.CreateLShr(Shl, IntSize - Width);
3757 Value *RightShift = Signed ? Builder.CreateAShr(Src, Offset)
3758 : Builder.CreateLShr(Src, Offset);
3801 NewCall = Builder.CreateMinNum(Src1, Src2);
3803 NewCall = Builder.CreateMinNum(Src0, Src2);
3805 NewCall = Builder.CreateMaxNum(Src0, Src1);
3846 ConstantFP::get(Builder.getContext(), Result));
3886 CallInst *NewCall = Builder.CreateCall(NewF, Args);
3964 IntegerType *CmpTy = Builder.getIntNTy(NewWidth);
3966 SrcLHS = Builder.CreateSExt(SrcLHS, CmpTy);
3967 SrcRHS = Builder.CreateSExt(SrcRHS, CmpTy);
3969 SrcLHS = Builder.CreateZExt(SrcLHS, CmpTy);
3970 SrcRHS = Builder.CreateZExt(SrcRHS, CmpTy);
3982 CallInst *NewCall = Builder.CreateCall(NewF, Args);
4009 CallInst *NewCall = Builder.CreateCall(NewF, Args);
4237 Builder.CreateCall(AssumeIntrinsicTy, AssumeIntrinsic, A, II->getName());
4238 Builder.CreateCall(AssumeIntrinsicTy, AssumeIntrinsic, B, II->getName());
4243 Builder.CreateCall(AssumeIntrinsicTy, AssumeIntrinsic,
4244 Builder.CreateNot(A), II->getName());
4245 Builder.CreateCall(AssumeIntrinsicTy, AssumeIntrinsic,
4246 Builder.CreateNot(B), II->getName());
4356 replaceOperand(*II, 0, Builder.CreateAnd(CurrCond, NextCond));
4434 if (Value *With = Simplifier.optimizeCall(CI, Builder)) {
4720 Call, Builder.CreateBitOrPointerCast(ReturnedArg, CallTy));
4898 NewArg = Builder.CreateBitOrPointerCast(*AI, ParamTy);
4929 NewArg = Builder.CreateCast(opcode, *AI, PTy);
4954 NewCall = Builder.CreateInvoke(Callee, II->getNormalDest(),
4957 NewCall = Builder.CreateCallBr(Callee, CBI->getDefaultDest(),
4960 NewCall = Builder.CreateCall(Callee, Args, OpBundles);
5066 NestVal = Builder.CreateBitCast(NestVal, NestTy, "nest");