|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/IR/AutoUpgrade.cpp 1650 Builder.SetInsertPoint(CI->getParent(), CI->getIterator());
1682 Value *Addr = Builder.CreateBitCast(Arg0, EltPtrTy, "cast");
1684 Builder.CreateExtractElement(Arg1, (uint64_t)0, "extractelement");
1686 StoreInst *SI = Builder.CreateAlignedStore(Extract, Addr, 1);
1706 Value *BC = Builder.CreateBitCast(Arg0,
1710 StoreInst *SI = Builder.CreateAlignedStore(Arg1, BC,
1724 Value *BC0 = Builder.CreateBitCast(Arg1, NewVecTy, "cast");
1725 Value *Elt = Builder.CreateExtractElement(BC0, (uint64_t)0);
1726 Value *BC = Builder.CreateBitCast(Arg0,
1729 Builder.CreateAlignedStore(Elt, BC, 1);
1742 Arg0 = Builder.CreateBitCast(Arg0,
1745 Builder.CreateAlignedStore(Arg1, Arg0, 1);
1753 Value *Mask = Builder.CreateAnd(CI->getArgOperand(2), Builder.getInt8(1));
1753 Value *Mask = Builder.CreateAnd(CI->getArgOperand(2), Builder.getInt8(1));
1754 UpgradeMaskedStore(Builder, CI->getArgOperand(0), CI->getArgOperand(1),
1765 UpgradeMaskedStore(Builder, CI->getArgOperand(0), CI->getArgOperand(1),
1779 Rep = Builder.CreateICmp(CmpEq ? ICmpInst::ICMP_EQ : ICmpInst::ICMP_SGT,
1781 Rep = Builder.CreateSExt(Rep, CI->getType(), "");
1788 Rep = Builder.CreateZExt(CI->getArgOperand(0), ExtTy);
1789 Rep = Builder.CreateVectorSplat(NumElts, Rep);
1793 Value *Elt0 = Builder.CreateExtractElement(Vec, (uint64_t)0);
1796 Elt0 = Builder.CreateCall(Intr, Elt0);
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,
1828 Rep = Builder.CreateAnd(Op0, Op1);
1833 Rep = Builder.CreateICmp(Pred, Rep, Zero);
1834 Rep = ApplyX86MaskOn1BitsVec(Builder, Rep, Mask);
1838 Rep = Builder.CreateVectorSplat(NumElts, CI->getArgOperand(0));
1839 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
1843 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), NumElts);
1844 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), NumElts);
1851 LHS = Builder.CreateShuffleVector(LHS, LHS,
1853 RHS = Builder.CreateShuffleVector(RHS, RHS,
1857 Rep = Builder.CreateShuffleVector(RHS, LHS,
1859 Rep = Builder.CreateBitCast(Rep, CI->getType());
1861 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1862 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1863 Rep = Builder.CreateAnd(LHS, RHS);
1864 Rep = Builder.CreateBitCast(Rep, CI->getType());
1866 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1867 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1868 LHS = Builder.CreateNot(LHS);
1869 Rep = Builder.CreateAnd(LHS, RHS);
1870 Rep = Builder.CreateBitCast(Rep, CI->getType());
1872 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1873 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1874 Rep = Builder.CreateOr(LHS, RHS);
1875 Rep = Builder.CreateBitCast(Rep, CI->getType());
1877 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1878 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1879 Rep = Builder.CreateXor(LHS, RHS);
1880 Rep = Builder.CreateBitCast(Rep, CI->getType());
1882 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1883 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1884 LHS = Builder.CreateNot(LHS);
1885 Rep = Builder.CreateXor(LHS, RHS);
1886 Rep = Builder.CreateBitCast(Rep, CI->getType());
1888 Rep = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1889 Rep = Builder.CreateNot(Rep);
1890 Rep = Builder.CreateBitCast(Rep, CI->getType());
1893 Value *LHS = getX86MaskVec(Builder, CI->getArgOperand(0), 16);
1894 Value *RHS = getX86MaskVec(Builder, CI->getArgOperand(1), 16);
1895 Rep = Builder.CreateOr(LHS, RHS);
1896 Rep = Builder.CreateBitCast(Rep, Builder.getInt16Ty());
1896 Rep = Builder.CreateBitCast(Rep, Builder.getInt16Ty());
1899 C = ConstantInt::getAllOnesValue(Builder.getInt16Ty());
1901 C = ConstantInt::getNullValue(Builder.getInt16Ty());
1902 Rep = Builder.CreateICmpEQ(Rep, C);
1903 Rep = Builder.CreateZExt(Rep, Builder.getInt32Ty());
1903 Rep = Builder.CreateZExt(Rep, Builder.getInt32Ty());
1909 Value *Elt0 = Builder.CreateExtractElement(CI->getArgOperand(0),
1911 Value *Elt1 = Builder.CreateExtractElement(CI->getArgOperand(1),
1915 EltOp = Builder.CreateFAdd(Elt0, Elt1);
1917 EltOp = Builder.CreateFSub(Elt0, Elt1);
1919 EltOp = Builder.CreateFMul(Elt0, Elt1);
1921 EltOp = Builder.CreateFDiv(Elt0, Elt1);
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));
1962 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
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));
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);
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);
2059 Rep = Builder.CreateUIToFP(CI->getArgOperand(1),
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());
2065 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep, (uint64_t)0);
2092 Rep = Builder.CreateShuffleVector(Rep, Rep, ShuffleMask);
2098 Rep = Builder.CreateFPExt(Rep, DstTy, "cvtps2pd");
2106 Rep = Builder.CreateCall(F, { Rep, CI->getArgOperand(3) });
2108 Rep = IsUnsigned ? Builder.CreateUIToFP(Rep, DstTy, "cvt")
2109 : Builder.CreateSIToFP(Rep, DstTy, "cvt");
2113 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2116 Rep = UpgradeMaskedLoad(Builder, CI->getArgOperand(0),
2120 Rep = UpgradeMaskedLoad(Builder, CI->getArgOperand(0),
2128 Value *Ptr = Builder.CreateBitCast(CI->getOperand(0),
2131 Value *MaskVec = getX86MaskVec(Builder, CI->getArgOperand(2),
2137 Rep = Builder.CreateCall(ELd, { Ptr, MaskVec, CI->getOperand(1) });
2143 Value *Ptr = Builder.CreateBitCast(CI->getOperand(0),
2146 Value *MaskVec = getX86MaskVec(Builder, CI->getArgOperand(2),
2152 Rep = Builder.CreateCall(CSt, { CI->getArgOperand(1), Ptr, MaskVec });
2157 Value *MaskVec = getX86MaskVec(Builder, CI->getArgOperand(2),
2164 Rep = Builder.CreateCall(Intr, { CI->getOperand(0), CI->getOperand(1),
2202 Rep = upgradeX86vpcom(Builder, *CI, Imm, IsSigned);
2205 Value *NotSel = Builder.CreateNot(Sel);
2206 Value *Sel0 = Builder.CreateAnd(CI->getArgOperand(0), Sel);
2207 Value *Sel1 = Builder.CreateAnd(CI->getArgOperand(1), NotSel);
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);
2229 Value *Trunc0 = Builder.CreateTrunc(CI->getArgOperand(0), Type::getInt32Ty(C));
2230 Rep = Builder.CreateCall(CRC32, {Trunc0, CI->getArgOperand(1)});
2231 Rep = Builder.CreateZExt(Rep, CI->getType(), "");
2238 Value *Cast = Builder.CreateBitCast(CI->getArgOperand(0),
2240 Value *Load = Builder.CreateLoad(EltTy, Cast);
2244 Rep = Builder.CreateInsertElement(Rep, Load,
2261 Value *SV = Builder.CreateShuffleVector(
2265 Rep = DoSext ? Builder.CreateSExt(SV, DstTy)
2266 : Builder.CreateZExt(SV, DstTy);
2269 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2276 Rep = Builder.CreateTrunc(CI->getArgOperand(0), Ty);
2277 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2285 Value *Op = Builder.CreatePointerCast(CI->getArgOperand(0),
2287 Value *Load = Builder.CreateAlignedLoad(VT, Op, 1);
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,
2326 Rep = Builder.CreateShuffleVector(CI->getArgOperand(0),
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,
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);
2460 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2479 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2483 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2498 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
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,
2577 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2580 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2596 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2599 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2622 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2624 Rep = EmitX86Select(Builder, CI->getArgOperand(4), Rep,
2644 Rep = Builder.CreateShuffleVector(Op0, Op0, Idxs);
2646 Rep = EmitX86Select(Builder, CI->getArgOperand(2), Rep,
2660 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2662 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2676 Rep = Builder.CreateShuffleVector(Op0, Op1, Idxs);
2678 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2684 Rep = Builder.CreateAnd(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2684 Rep = Builder.CreateAnd(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2685 Builder.CreateBitCast(CI->getArgOperand(1), ITy));
2686 Rep = Builder.CreateBitCast(Rep, FTy);
2687 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2693 Rep = Builder.CreateNot(Builder.CreateBitCast(CI->getArgOperand(0), ITy));
2693 Rep = Builder.CreateNot(Builder.CreateBitCast(CI->getArgOperand(0), ITy));
2694 Rep = Builder.CreateAnd(Rep,
2695 Builder.CreateBitCast(CI->getArgOperand(1), ITy));
2696 Rep = Builder.CreateBitCast(Rep, FTy);
2697 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2703 Rep = Builder.CreateOr(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2703 Rep = Builder.CreateOr(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2704 Builder.CreateBitCast(CI->getArgOperand(1), ITy));
2705 Rep = Builder.CreateBitCast(Rep, FTy);
2706 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2712 Rep = Builder.CreateXor(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2712 Rep = Builder.CreateXor(Builder.CreateBitCast(CI->getArgOperand(0), ITy),
2713 Builder.CreateBitCast(CI->getArgOperand(1), ITy));
2714 Rep = Builder.CreateBitCast(Rep, FTy);
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,
2722 Rep = Builder.CreateSub(CI->getArgOperand(0), CI->getArgOperand(1));
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,
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,
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,
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,
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,
2804 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
2807 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep,
2810 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(),
2813 { CI->getArgOperand(0), Builder.getInt1(false) });
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);
3032 Builder.CreateBitCast(Ptr, PointerType::getUnqual(VTy), "cast");
3033 LoadInst *LI = Builder.CreateAlignedLoad(VTy, BC, VTy->getBitWidth() / 8);
3048 Ops[0] = Builder.CreateExtractElement(Ops[0], (uint64_t)0);
3049 Ops[1] = Builder.CreateExtractElement(Ops[1], (uint64_t)0);
3050 Ops[2] = Builder.CreateExtractElement(Ops[2], (uint64_t)0);
3054 Ops[0] = Builder.CreateFNeg(Ops[0]);
3056 Ops[1] = Builder.CreateFNeg(Ops[1]);
3058 Ops[2] = Builder.CreateFNeg(Ops[2]);
3060 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(),
3066 Rep = Builder.CreateInsertElement(CI->getArgOperand(0), Rep,
3072 Ops[0] = Builder.CreateExtractElement(Ops[0], (uint64_t)0);
3073 Ops[1] = Builder.CreateExtractElement(Ops[1], (uint64_t)0);
3074 Ops[2] = Builder.CreateExtractElement(Ops[2], (uint64_t)0);
3076 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(),
3081 Rep = Builder.CreateInsertElement(Constant::getNullValue(CI->getType()),
3100 A = Builder.CreateFNeg(A);
3102 B = Builder.CreateFNeg(B);
3104 C = Builder.CreateFNeg(C);
3106 A = Builder.CreateExtractElement(A, (uint64_t)0);
3107 B = Builder.CreateExtractElement(B, (uint64_t)0);
3108 C = Builder.CreateExtractElement(C, (uint64_t)0);
3120 Rep = Builder.CreateCall(FMA, Ops);
3125 Rep = Builder.CreateCall(FMA, { A, B, C });
3134 PassThru = Builder.CreateExtractElement(CI->getArgOperand(2),
3137 Rep = EmitX86ScalarSelect(Builder, CI->getArgOperand(3),
3139 Rep = Builder.CreateInsertElement(CI->getArgOperand(IsMask3 ? 2 : 0),
3160 A = Builder.CreateFNeg(A);
3162 B = Builder.CreateFNeg(B);
3164 C = Builder.CreateFNeg(C);
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);
3200 Value *Odd = Builder.CreateCall(FMA, Ops);
3201 Ops[2] = Builder.CreateFNeg(Ops[2]);
3202 Value *Even = Builder.CreateCall(FMA, Ops);
3211 Rep = Builder.CreateShuffleVector(Even, Odd, Idxs);
3234 Ops[2] = Builder.CreateFNeg(Ops[2]);
3236 Rep = Builder.CreateCall(Intrinsic::getDeclaration(F->getParent(), IID),
3247 Value *Odd = Builder.CreateCall(FMA, Ops);
3248 Ops[2] = Builder.CreateFNeg(Ops[2]);
3249 Value *Even = Builder.CreateCall(FMA, Ops);
3258 Rep = Builder.CreateShuffleVector(Even, Odd, Idxs);
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);
3317 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
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);
3383 Rep = Builder.CreateCall(Intrinsic::getDeclaration(CI->getModule(), IID),
3387 Rep = EmitX86Select(Builder, CI->getArgOperand(3), Rep, PassThru);
3406 Value *NewCall = Builder.CreateCall(
3411 Value *Data = Builder.CreateExtractValue(NewCall, 1);
3413 Value *Ptr = Builder.CreateBitCast(CI->getArgOperand(3),
3415 Builder.CreateAlignedStore(Data, Ptr, 1);
3417 Value *CF = Builder.CreateExtractValue(NewCall, 0);
3422 upgradeAVX512MaskToSelect(Name, Builder, *CI, Rep)) {
3426 Value *Neg = Builder.CreateNeg(Arg, "neg");
3427 Value *Cmp = Builder.CreateICmpSGE(
3429 Rep = Builder.CreateSelect(Cmp, Arg, Neg, "abs");
3434 Rep = Builder.CreateAtomicRMW(AtomicRMWInst::FAdd, Ptr, Val,
3441 ? Builder.CreateICmpUGE(Arg0, Arg1, "max.cond")
3442 : Builder.CreateICmpSGE(Arg0, Arg1, "max.cond");
3443 Rep = Builder.CreateSelect(Cmp, Arg0, Arg1, "max");
3449 ? Builder.CreateICmpULE(Arg0, Arg1, "min.cond")
3450 : Builder.CreateICmpSLE(Arg0, Arg1, "min.cond");
3451 Rep = Builder.CreateSelect(Cmp, Arg0, Arg1, "min");
3455 Value *Ctlz = Builder.CreateCall(
3458 {Arg, Builder.getFalse()}, "ctlz");
3459 Rep = Builder.CreateTrunc(Ctlz, Builder.getInt32Ty(), "ctlz.trunc");
3459 Rep = Builder.CreateTrunc(Ctlz, Builder.getInt32Ty(), "ctlz.trunc");
3464 Value *Popc = Builder.CreateCall(
3468 Rep = Builder.CreateTrunc(Popc, Builder.getInt32Ty(), "ctpop.trunc");
3468 Rep = Builder.CreateTrunc(Popc, Builder.getInt32Ty(), "ctpop.trunc");
3470 Rep = Builder.CreateCall(Intrinsic::getDeclaration(
3472 {Builder.getFloatTy()}),
3504 NewCall = Builder.CreateCall(NewFn, Args);
3515 NewCall = Builder.CreateCall(NewFn, Args);
3535 NewCall = Builder.CreateCall(NewFn, Args);
3540 NewCall = Builder.CreateCall(NewFn, {CI->getArgOperand(0)});
3548 Builder.CreateCall(NewFn, {CI->getArgOperand(0), Builder.getFalse()});
3548 Builder.CreateCall(NewFn, {CI->getArgOperand(0), Builder.getFalse()});
3553 ? Builder.getFalse()
3556 CI->getNumArgOperands() < 4 ? Builder.getFalse() : CI->getArgOperand(3);
3557 NewCall = Builder.CreateCall(
3563 NewCall = Builder.CreateCall(NewFn, {CI->getArgOperand(0)});
3567 NewCall = Builder.CreateCall(NewFn, {CI->getArgOperand(0)});
3576 NewCall = Builder.CreateCall(
3586 NewCall = Builder.CreateCall(NewFn, {CI->getArgOperand(1)});
3597 Args[2] = Builder.CreateBitCast(Args[2], IntIdxTy);
3598 NewCall = Builder.CreateCall(NewFn, Args);
3618 Value *BC0 = Builder.CreateBitCast(Arg0, NewVecTy, "cast");
3619 Value *BC1 = Builder.CreateBitCast(Arg1, NewVecTy, "cast");
3621 NewCall = Builder.CreateCall(NewFn, {BC0, BC1});
3631 NewCall = Builder.CreateCall(NewFn);
3633 Value *Data = Builder.CreateExtractValue(NewCall, 1);
3635 Value *Ptr = Builder.CreateBitCast(CI->getArgOperand(0),
3637 Builder.CreateAlignedStore(Data, Ptr, 1);
3639 Value *TSC = Builder.CreateExtractValue(NewCall, 0);
3663 Args.back() = Builder.CreateTrunc(Args.back(), Type::getInt8Ty(C), "trunc");
3664 NewCall = Builder.CreateCall(NewFn, Args);
3669 NewCall = Builder.CreateCall(NewFn, {});
3681 NewCall = Builder.CreateCall(NewFn, Args);
3703 NewCall = Builder.CreateCall(NewFn, Args);