reference, declarationdefinition
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);