|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/IR/AutoUpgrade.cpp 1779 Rep = Builder.CreateICmp(CmpEq ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_SGT,
1781 Rep = Builder.CreateSExt(Rep, CI->getType(), "");
1781 Rep = Builder.CreateSExt(Rep, CI->getType(), "");
1788 Rep = Builder.CreateZExt(CI->getArgOperand(0), ExtTy);
1789 Rep = Builder.CreateVectorSplat(NumElts, Rep);
1789 Rep = Builder.CreateVectorSplat(NumElts, Rep);
1797 Rep = Builder.CreateInsertElement(Vec, Elt0, (uint64_t)0);
1801 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(),
1813 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(),
1816 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(),
1821 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
1821 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
1828 Rep = Builder.CreateAnd(Op0, Op1);
1833 Rep = Builder.CreateICmp(Pred, Rep, Zero);
1833 Rep = Builder.CreateICmp(Pred, Rep, Zero);
1834 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, Mask);
1834 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, Mask);
1838 Rep = Builder.CreateVectorSplat(NumElts, CI->getArgOperand(0));
1839 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
1839 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
1857 Rep = Builder.CreateShuffleVector(RHS, LHS,
1859 Rep = Builder.CreateBitCast(Rep, CI->getType());
1859 Rep = Builder.CreateBitCast(Rep, CI->getType());
1863 Rep = Builder.CreateAnd(LHS, RHS);
1864 Rep = Builder.CreateBitCast(Rep, CI->getType());
1864 Rep = Builder.CreateBitCast(Rep, CI->getType());
1869 Rep = Builder.CreateAnd(LHS, RHS);
1870 Rep = Builder.CreateBitCast(Rep, CI->getType());
1870 Rep = Builder.CreateBitCast(Rep, CI->getType());
1874 Rep = Builder.CreateOr(LHS, RHS);
1875 Rep = Builder.CreateBitCast(Rep, CI->getType());
1875 Rep = Builder.CreateBitCast(Rep, CI->getType());
1879 Rep = Builder.CreateXor(LHS, RHS);
1880 Rep = Builder.CreateBitCast(Rep, CI->getType());
1880 Rep = Builder.CreateBitCast(Rep, CI->getType());
1885 Rep = Builder.CreateXor(LHS, RHS);
1886 Rep = Builder.CreateBitCast(Rep, CI->getType());
1886 Rep = Builder.CreateBitCast(Rep, CI->getType());
1888 Rep = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1889 Rep = Builder.CreateNot(Rep);
1889 Rep = Builder.CreateNot(Rep);
1890 Rep = Builder.CreateBitCast(Rep, CI->getType());
1890 Rep = Builder.CreateBitCast(Rep, CI->getType());
1895 Rep = Builder.CreateOr(LHS, RHS);
1896 Rep = Builder.CreateBitCast(Rep, Builder.getInt16Ty());
1896 Rep = Builder.CreateBitCast(Rep, Builder.getInt16Ty());
1902 Rep = Builder.CreateICmpEQ(Rep, C);
1902 Rep = Builder.CreateICmpEQ(Rep, C);
1903 Rep = Builder.CreateZExt(Rep, Builder.getInt32Ty());
1903 Rep = Builder.CreateZExt(Rep, Builder.getInt32Ty());
1922 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), EltOp,
1927 Rep = upgradeMaskedCompare(Builder, *CI, CmpEq ? 0 : 6, true);
1939 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
1941 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
1941 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
1962 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
1964 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
1964 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(2));
1992 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
1994 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(3));
1994 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, CI->getArgOperand(3));
1999 Rep = upgradeMaskedCompare(Builder, *CI, Imm, true);
2002 Rep = upgradeMaskedCompare(Builder, *CI, Imm, false);
2009 Rep = Builder.CreateICmp(ICmpInst::ICMP_SLT, Op, Zero);
2010 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, nullptr);
2010 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, nullptr);
2016 Rep = upgradeAbs(Builder, *CI);
2022 Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_SGT);
2028 Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_UGT);
2034 Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_SLT);
2040 Rep = upgradeIntMinMax(Builder, *CI, ICmpInst::ICMP_ULT);
2045 Rep = upgradePMULDQ(Builder, *CI, /*Signed*/false);
2050 Rep = upgradePMULDQ(Builder, *CI, /*Signed*/true);
2055 Rep = Builder.CreateSIToFP(CI->getArgOperand(1),
2057 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2057 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2059 Rep = Builder.CreateUIToFP(CI->getArgOperand(1),
2061 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2061 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2063 Rep = Builder.CreateExtractElement(CI->getArgOperand(1), (uint64_t)0);
2064 Rep = Builder.CreateFPExt(Rep, CI->getType()->getVectorElementType());
2064 Rep = Builder.CreateFPExt(Rep, CI->getType()->getVectorElementType());
2065 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2065 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2085 Rep = CI->getArgOperand(0);
2086 Type *SrcTy = Rep->getType();
2092 Rep = Builder.CreateShuffleVector(Rep, Rep, ShuffleMask);
2092 Rep = Builder.CreateShuffleVector(Rep, Rep, ShuffleMask);
2092 Rep = Builder.CreateShuffleVector(Rep, Rep, ShuffleMask);
2098 Rep = Builder.CreateFPExt(Rep, DstTy, "cvtps2pd");
2098 Rep = Builder.CreateFPExt(Rep, DstTy, "cvtps2pd");
2106 Rep = Builder.CreateCall(F, { Rep, CI->getArgOperand(3) });
2106 Rep = Builder.CreateCall(F, { Rep, CI->getArgOperand(3) });
2108 Rep = IsUnsigned ? Builder.CreateUIToFP(Rep, DstTy, "cvt")
2108 Rep = IsUnsigned ? Builder.CreateUIToFP(Rep, DstTy, "cvt")
2109 : Builder.CreateSIToFP(Rep, DstTy, "cvt");
2113 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2113 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2116 Rep = UpgradeMaskedLoad(Builder, CI->getArgOperand(0),
2120 Rep = UpgradeMaskedLoad(Builder, CI->getArgOperand(0),
2137 Rep = Builder.CreateCall(ELd, { Ptr, MaskVec, CI->getOperand(1) });
2152 Rep = Builder.CreateCall(CSt, { CI->getArgOperand(1), Ptr, MaskVec });
2164 Rep = Builder.CreateCall(Intr, { CI->getOperand(0), CI->getOperand(1),
2202 Rep = upgradeX86vpcom(Builder, *CI, Imm, IsSigned);
2208 Rep = Builder.CreateOr(Sel0, Sel1);
2212 Rep = upgradeX86Rotate(Builder, *CI, false);
2215 Rep = upgradeX86Rotate(Builder, *CI, true);
2220 Rep = upgradeX86ConcatShift(Builder, *CI, false, ZeroMask);
2225 Rep = upgradeX86ConcatShift(Builder, *CI, true, ZeroMask);
2230 Rep = Builder.CreateCall(CRC32, {Trunc0, CI->getArgOperand(1)});
2231 Rep = Builder.CreateZExt(Rep, CI->getType(), "");
2231 Rep = Builder.CreateZExt(Rep, CI->getType(), "");
2242 Rep = UndefValue::get(VecTy);
2244 Rep = Builder.CreateInsertElement(Rep, Load,
2244 Rep = Builder.CreateInsertElement(Rep, Load,
2265 Rep = DoSext ? Builder.CreateSExt(SV, DstTy)
2269 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2269 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2276 Rep = Builder.CreateTrunc(CI->getArgOperand(0), Ty);
2277 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2277 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2289 Rep = Builder.CreateShuffleVector(Load, UndefValue::get(Load->getType()),
2292 Rep = Builder.CreateShuffleVector(Load, UndefValue::get(Load->getType()),
2312 Rep = Builder.CreateShuffleVector(CI->getArgOperand(0),
2314 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2314 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2326 Rep = Builder.CreateShuffleVector(CI->getArgOperand(0),
2329 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2329 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2339 Rep = Builder.CreateShuffleVector(Op, UndefValue::get(Op->getType()),
2343 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2343 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2354 Rep = UpgradeX86AddSubSatIntrinsics(Builder, *CI, true, IsAdd);
2362 Rep = UpgradeX86AddSubSatIntrinsics(Builder, *CI, false, IsAdd);
2364 Rep = UpgradeX86ALIGNIntrinsics(Builder, CI->getArgOperand(0),
2371 Rep = UpgradeX86ALIGNIntrinsics(Builder, CI->getArgOperand(0),
2381 Rep = UpgradeX86PSLLDQIntrinsics(Builder, CI->getArgOperand(0),
2387 Rep = UpgradeX86PSRLDQIntrinsics(Builder, CI->getArgOperand(0),
2394 Rep = UpgradeX86PSLLDQIntrinsics(Builder, CI->getArgOperand(0), Shift);
2400 Rep = UpgradeX86PSRLDQIntrinsics(Builder, CI->getArgOperand(0), Shift);
2416 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2437 Rep = Builder.CreateShuffleVector(Op1, UndefV, Idxs);
2456 Rep = Builder.CreateShuffleVector(Op0, Rep, Idxs);
2456 Rep = Builder.CreateShuffleVector(Op0, Rep, Idxs);
2460 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2460 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2479 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2483 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2483 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2486 Rep = nullptr;
2498 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2501 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2501 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2537 Rep = Builder.CreateShuffleVector(V0, V1, ShuffleMask);
2558 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2561 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2561 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2577 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2580 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2580 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2596 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2599 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2599 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2622 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2624 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2624 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2644 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2646 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2646 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2660 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2662 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2662 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2676 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2678 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2678 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2684 Rep = Builder.CreateAnd(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2686 Rep = Builder.CreateBitCast(Rep, FTy);
2686 Rep = Builder.CreateBitCast(Rep, FTy);
2687 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2687 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2693 Rep = Builder.CreateNot(Builder.CreateBitCast(CI->getArgOperand(0), ITy));
2694 Rep = Builder.CreateAnd(Rep,
2694 Rep = Builder.CreateAnd(Rep,
2696 Rep = Builder.CreateBitCast(Rep, FTy);
2696 Rep = Builder.CreateBitCast(Rep, FTy);
2697 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2697 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2703 Rep = Builder.CreateOr(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2705 Rep = Builder.CreateBitCast(Rep, FTy);
2705 Rep = Builder.CreateBitCast(Rep, FTy);
2706 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2706 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2712 Rep = Builder.CreateXor(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2714 Rep = Builder.CreateBitCast(Rep, FTy);
2714 Rep = Builder.CreateBitCast(Rep, FTy);
2715 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2715 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2718 Rep = Builder.CreateAdd(CI->getArgOperand(0), CI->getArgOperand(1));
2719 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2719 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2722 Rep = Builder.CreateSub(CI->getArgOperand(0), CI->getArgOperand(1));
2723 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2723 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2726 Rep = Builder.CreateMul(CI->getArgOperand(0), CI->getArgOperand(1));
2727 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2727 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2737 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2741 Rep = Builder.CreateFAdd(CI->getArgOperand(0), CI->getArgOperand(1));
2743 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2743 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2753 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2757 Rep = Builder.CreateFDiv(CI->getArgOperand(0), CI->getArgOperand(1));
2759 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2759 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2769 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2773 Rep = Builder.CreateFMul(CI->getArgOperand(0), CI->getArgOperand(1));
2775 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2775 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2785 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2789 Rep = Builder.CreateFSub(CI->getArgOperand(0), CI->getArgOperand(1));
2791 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2791 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2804 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2807 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2807 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2810 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(),
2814 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2814 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2883 Rep = UpgradeX86MaskedShift(Builder, *CI, IID);
2951 Rep = UpgradeX86MaskedShift(Builder, *CI, IID);
3017 Rep = UpgradeX86MaskedShift(Builder, *CI, IID);
3019 Rep = upgradeMaskedMove(Builder, *CI);
3021 Rep = UpgradeMaskToInt(Builder, *CI);
3035 Rep = LI;
3060 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(),
3066 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep,
3066 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep,
3076 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(),
3081 Rep = Builder.CreateInsertElement(Constant::getNullValue(CI->getType()),
3082 Rep, (uint64_t)0);
3120 Rep = Builder.CreateCall(FMA, Ops);
3125 Rep = Builder.CreateCall(FMA, { A, B, C });
3128 Value *PassThru = IsMaskZ ? Constant::getNullValue(Rep->getType()) :
3137 Rep = EmitX86ScalarSelect(Builder, CI->getArgOperand(3),
3138 Rep, PassThru);
3139 Rep = Builder.CreateInsertElement(CI->getArgOperand(IsMask3 ? 2 : 0),
3140 Rep, (uint64_t)0);
3176 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
3182 Rep = Builder.CreateCall(FMA, { A, B, C });
3189 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3189 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3211 Rep = Builder.CreateShuffleVector(Even, Odd, Idxs);
3236 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
3258 Rep = Builder.CreateShuffleVector(Even, Odd, Idxs);
3265 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3265 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3289 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
3293 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep, PassThru);
3293 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep, PassThru);
3317 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
3321 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3321 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3327 Rep = UpgradeX86VPERMT2Intrinsics(Builder, *CI, ZeroMask, IndexForm);
3353 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
3357 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3357 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3383 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
3387 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3387 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3420 Rep = nullptr;
3422 upgradeAVX512MaskToSelect(Name, Builder, *CI, Rep)) {
3429 Rep = Builder.CreateSelect(Cmp, Arg, Neg, "abs");
3434 Rep = Builder.CreateAtomicRMW(AtomicRMWInst::FAdd, Ptr, Val,
3443 Rep = Builder.CreateSelect(Cmp, Arg0, Arg1, "max");
3451 Rep = Builder.CreateSelect(Cmp, Arg0, Arg1, "min");
3459 Rep = Builder.CreateTrunc(Ctlz, Builder.getInt32Ty(), "ctlz.trunc");
3468 Rep = Builder.CreateTrunc(Popc, Builder.getInt32Ty(), "ctpop.trunc");
3470 Rep = Builder.CreateCall(Intrinsic::getDeclaration(
3478 if (Rep)
3479 CI->replaceAllUsesWith(Rep);