Lines Matching refs:IC
763 static std::optional<Instruction *> processPhiNode(InstCombiner &IC, in processPhiNode() argument
785 IC.Builder.SetInsertPoint(PN); in processPhiNode()
786 PHINode *NPN = IC.Builder.CreatePHI(RequiredType, PN->getNumIncomingValues()); in processPhiNode()
796 return IC.replaceInstUsesWith(II, NPN); in processPhiNode()
809 tryCombineFromSVBoolBinOp(InstCombiner &IC, IntrinsicInst &II) { in tryCombineFromSVBoolBinOp() argument
843 auto NarrowBinOpOp1 = IC.Builder.CreateIntrinsic( in tryCombineFromSVBoolBinOp()
849 NarrowedBinOpArgs.push_back(IC.Builder.CreateIntrinsic( in tryCombineFromSVBoolBinOp()
853 IC.Builder.CreateIntrinsic(IntrinsicID, {PredOpTy}, NarrowedBinOpArgs); in tryCombineFromSVBoolBinOp()
854 return IC.replaceInstUsesWith(II, NarrowedBinOp); in tryCombineFromSVBoolBinOp()
858 instCombineConvertFromSVBool(InstCombiner &IC, IntrinsicInst &II) { in instCombineConvertFromSVBool() argument
861 return processPhiNode(IC, II); in instCombineConvertFromSVBool()
863 if (auto BinOpCombine = tryCombineFromSVBoolBinOp(IC, II)) in instCombineConvertFromSVBool()
907 return IC.replaceInstUsesWith(II, EarliestReplacement); in instCombineConvertFromSVBool()
926 static std::optional<Instruction *> instCombineSVESel(InstCombiner &IC, in instCombineSVESel() argument
931 return IC.replaceInstUsesWith(II, II.getOperand(1)); in instCombineSVESel()
934 IC.Builder.CreateSelect(OpPredicate, II.getOperand(1), II.getOperand(2)); in instCombineSVESel()
935 return IC.replaceInstUsesWith(II, Select); in instCombineSVESel()
938 static std::optional<Instruction *> instCombineSVEDup(InstCombiner &IC, in instCombineSVEDup() argument
959 return IC.replaceInstUsesWith(II, Insert); in instCombineSVEDup()
962 static std::optional<Instruction *> instCombineSVEDupX(InstCombiner &IC, in instCombineSVEDupX() argument
966 Value *Splat = IC.Builder.CreateVectorSplat(RetTy->getElementCount(), in instCombineSVEDupX()
969 return IC.replaceInstUsesWith(II, Splat); in instCombineSVEDupX()
972 static std::optional<Instruction *> instCombineSVECmpNE(InstCombiner &IC, in instCombineSVECmpNE() argument
1039 return IC.replaceInstUsesWith(II, PFalse); in instCombineSVECmpNE()
1059 auto *PTrue = IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_ptrue, in instCombineSVECmpNE()
1061 auto *ConvertToSVBool = IC.Builder.CreateIntrinsic( in instCombineSVECmpNE()
1064 IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_convert_from_svbool, in instCombineSVECmpNE()
1068 return IC.replaceInstUsesWith(II, ConvertFromSVBool); in instCombineSVECmpNE()
1071 static std::optional<Instruction *> instCombineSVELast(InstCombiner &IC, in instCombineSVELast() argument
1080 return IC.replaceInstUsesWith(II, SplatVal); in instCombineSVELast()
1090 IC.Builder.CreateIntrinsic(IntrinsicID, {Vec->getType()}, {Pg, LHS}); in instCombineSVELast()
1092 IC.Builder.CreateIntrinsic(IntrinsicID, {Vec->getType()}, {Pg, RHS}); in instCombineSVELast()
1095 return IC.replaceInstUsesWith(II, NewBinOp); in instCombineSVELast()
1106 return IC.replaceInstUsesWith(II, Extract); in instCombineSVELast()
1142 return IC.replaceInstUsesWith(II, Extract); in instCombineSVELast()
1145 static std::optional<Instruction *> instCombineSVECondLast(InstCombiner &IC, in instCombineSVECondLast() argument
1167 FPTy = IC.Builder.getHalfTy(); in instCombineSVECondLast()
1170 FPTy = IC.Builder.getFloatTy(); in instCombineSVECondLast()
1173 FPTy = IC.Builder.getDoubleTy(); in instCombineSVECondLast()
1177 Value *FPFallBack = IC.Builder.CreateBitCast(Fallback, FPTy); in instCombineSVECondLast()
1180 Value *FPVec = IC.Builder.CreateBitCast(Vec, FPVTy); in instCombineSVECondLast()
1181 auto *FPII = IC.Builder.CreateIntrinsic( in instCombineSVECondLast()
1183 Value *FPIItoInt = IC.Builder.CreateBitCast(FPII, II.getType()); in instCombineSVECondLast()
1184 return IC.replaceInstUsesWith(II, FPIItoInt); in instCombineSVECondLast()
1187 static std::optional<Instruction *> instCombineRDFFR(InstCombiner &IC, in instCombineRDFFR() argument
1194 auto *PTrue = IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_ptrue, in instCombineRDFFR()
1197 IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_rdffr_z, {}, {PTrue}); in instCombineRDFFR()
1199 return IC.replaceInstUsesWith(II, RDFFR); in instCombineRDFFR()
1203 instCombineSVECntElts(InstCombiner &IC, IntrinsicInst &II, unsigned NumElts) { in instCombineSVECntElts() argument
1208 auto *VScale = IC.Builder.CreateVScale(StepVal); in instCombineSVECntElts()
1210 return IC.replaceInstUsesWith(II, VScale); in instCombineSVECntElts()
1216 ? std::optional<Instruction *>(IC.replaceInstUsesWith( in instCombineSVECntElts()
1221 static std::optional<Instruction *> instCombineSVEPTest(InstCombiner &IC, in instCombineSVEPTest() argument
1235 IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_ptest_any, Tys, Ops); in instCombineSVEPTest()
1238 return IC.replaceInstUsesWith(II, PTest); in instCombineSVEPTest()
1255 auto *PTest = IC.Builder.CreateIntrinsic(II.getIntrinsicID(), Tys, Ops); in instCombineSVEPTest()
1258 return IC.replaceInstUsesWith(II, PTest); in instCombineSVEPTest()
1280 auto *PTest = IC.Builder.CreateIntrinsic(II.getIntrinsicID(), Tys, Ops); in instCombineSVEPTest()
1283 return IC.replaceInstUsesWith(II, PTest); in instCombineSVEPTest()
1291 instCombineSVEVectorFuseMulAddSub(InstCombiner &IC, IntrinsicInst &II, in instCombineSVEVectorFuseMulAddSub() argument
1324 Res = IC.Builder.CreateIntrinsic(FuseOpc, {II.getType()}, in instCombineSVEVectorFuseMulAddSub()
1327 Res = IC.Builder.CreateIntrinsic(FuseOpc, {II.getType()}, in instCombineSVEVectorFuseMulAddSub()
1330 return IC.replaceInstUsesWith(II, Res); in instCombineSVEVectorFuseMulAddSub()
1334 instCombineSVELD1(InstCombiner &IC, IntrinsicInst &II, const DataLayout &DL) { in instCombineSVELD1() argument
1340 LoadInst *Load = IC.Builder.CreateLoad(VecTy, PtrOp); in instCombineSVELD1()
1342 return IC.replaceInstUsesWith(II, Load); in instCombineSVELD1()
1346 IC.Builder.CreateMaskedLoad(VecTy, PtrOp, PtrOp->getPointerAlignment(DL), in instCombineSVELD1()
1349 return IC.replaceInstUsesWith(II, MaskedLoad); in instCombineSVELD1()
1353 instCombineSVEST1(InstCombiner &IC, IntrinsicInst &II, const DataLayout &DL) { in instCombineSVEST1() argument
1359 StoreInst *Store = IC.Builder.CreateStore(VecOp, PtrOp); in instCombineSVEST1()
1361 return IC.eraseInstFromFunction(II); in instCombineSVEST1()
1364 CallInst *MaskedStore = IC.Builder.CreateMaskedStore( in instCombineSVEST1()
1367 return IC.eraseInstFromFunction(II); in instCombineSVEST1()
1384 instCombineSVEVectorBinOp(InstCombiner &IC, IntrinsicInst &II) { in instCombineSVEVectorBinOp() argument
1395 IRBuilderBase::FastMathFlagGuard FMFGuard(IC.Builder); in instCombineSVEVectorBinOp()
1396 IC.Builder.setFastMathFlags(II.getFastMathFlags()); in instCombineSVEVectorBinOp()
1398 IC.Builder.CreateBinOp(BinOpCode, II.getOperand(1), II.getOperand(2)); in instCombineSVEVectorBinOp()
1399 return IC.replaceInstUsesWith(II, BinOp); in instCombineSVEVectorBinOp()
1421 instCombineSVEAllOrNoActive(InstCombiner &IC, IntrinsicInst &II, in instCombineSVEAllOrNoActive() argument
1426 return IC.replaceInstUsesWith(II, II.getOperand(1)); in instCombineSVEAllOrNoActive()
1431 static std::optional<Instruction *> instCombineSVEVectorAdd(InstCombiner &IC, in instCombineSVEVectorAdd() argument
1434 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_add_u)) in instCombineSVEVectorAdd()
1438 IC, II, true)) in instCombineSVEVectorAdd()
1442 IC, II, false)) in instCombineSVEVectorAdd()
1448 instCombineSVEVectorFAdd(InstCombiner &IC, IntrinsicInst &II) { in instCombineSVEVectorFAdd() argument
1450 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fadd_u)) in instCombineSVEVectorFAdd()
1454 Intrinsic::aarch64_sve_fmla>(IC, II, in instCombineSVEVectorFAdd()
1459 Intrinsic::aarch64_sve_fmad>(IC, II, in instCombineSVEVectorFAdd()
1464 Intrinsic::aarch64_sve_fmla>(IC, II, in instCombineSVEVectorFAdd()
1471 instCombineSVEVectorFAddU(InstCombiner &IC, IntrinsicInst &II) { in instCombineSVEVectorFAddU() argument
1474 Intrinsic::aarch64_sve_fmla>(IC, II, in instCombineSVEVectorFAddU()
1479 Intrinsic::aarch64_sve_fmad>(IC, II, in instCombineSVEVectorFAddU()
1485 IC, II, true)) in instCombineSVEVectorFAddU()
1487 return instCombineSVEVectorBinOp(IC, II); in instCombineSVEVectorFAddU()
1491 instCombineSVEVectorFSub(InstCombiner &IC, IntrinsicInst &II) { in instCombineSVEVectorFSub() argument
1493 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fsub_u)) in instCombineSVEVectorFSub()
1497 Intrinsic::aarch64_sve_fmls>(IC, II, in instCombineSVEVectorFSub()
1503 IC, II, false)) in instCombineSVEVectorFSub()
1507 Intrinsic::aarch64_sve_fmls>(IC, II, in instCombineSVEVectorFSub()
1514 instCombineSVEVectorFSubU(InstCombiner &IC, IntrinsicInst &II) { in instCombineSVEVectorFSubU() argument
1517 Intrinsic::aarch64_sve_fmls>(IC, II, in instCombineSVEVectorFSubU()
1523 IC, II, false)) in instCombineSVEVectorFSubU()
1528 IC, II, true)) in instCombineSVEVectorFSubU()
1530 return instCombineSVEVectorBinOp(IC, II); in instCombineSVEVectorFSubU()
1533 static std::optional<Instruction *> instCombineSVEVectorSub(InstCombiner &IC, in instCombineSVEVectorSub() argument
1536 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_sub_u)) in instCombineSVEVectorSub()
1540 IC, II, true)) in instCombineSVEVectorSub()
1545 static std::optional<Instruction *> instCombineSVEVectorMul(InstCombiner &IC, in instCombineSVEVectorMul() argument
1574 return IC.replaceInstUsesWith(II, OpMultiplicand); in instCombineSVEVectorMul()
1583 return IC.replaceInstUsesWith(II, OpMultiplicand); in instCombineSVEVectorMul()
1587 return instCombineSVEVectorBinOp(IC, II); in instCombineSVEVectorMul()
1590 static std::optional<Instruction *> instCombineSVEUnpack(InstCombiner &IC, in instCombineSVEUnpack() argument
1601 IC.Builder.CreateIntCast(ScalarArg, RetTy->getScalarType(), IsSigned); in instCombineSVEUnpack()
1603 IC.Builder.CreateVectorSplat(RetTy->getElementCount(), ScalarArg); in instCombineSVEUnpack()
1605 return IC.replaceInstUsesWith(II, NewVal); in instCombineSVEUnpack()
1610 static std::optional<Instruction *> instCombineSVETBL(InstCombiner &IC, in instCombineSVETBL() argument
1625 auto *Extract = IC.Builder.CreateExtractElement(OpVal, SplatValue); in instCombineSVETBL()
1627 IC.Builder.CreateVectorSplat(VTy->getElementCount(), Extract); in instCombineSVETBL()
1630 return IC.replaceInstUsesWith(II, VectorSplat); in instCombineSVETBL()
1633 static std::optional<Instruction *> instCombineSVEZip(InstCombiner &IC, in instCombineSVEZip() argument
1642 return IC.replaceInstUsesWith( in instCombineSVEZip()
1649 instCombineLD1GatherIndex(InstCombiner &IC, IntrinsicInst &II) { in instCombineLD1GatherIndex() argument
1666 Value *Ptr = IC.Builder.CreateGEP(cast<VectorType>(Ty)->getElementType(), in instCombineLD1GatherIndex()
1668 Ptr = IC.Builder.CreateBitCast(Ptr, VecPtrTy); in instCombineLD1GatherIndex()
1670 IC.Builder.CreateMaskedLoad(Ty, Ptr, Alignment, Mask, PassThru); in instCombineLD1GatherIndex()
1672 return IC.replaceInstUsesWith(II, MaskedLoad); in instCombineLD1GatherIndex()
1679 instCombineST1ScatterIndex(InstCombiner &IC, IntrinsicInst &II) { in instCombineST1ScatterIndex() argument
1695 Value *Ptr = IC.Builder.CreateGEP(cast<VectorType>(Ty)->getElementType(), in instCombineST1ScatterIndex()
1698 Ptr = IC.Builder.CreateBitCast(Ptr, VecPtrTy); in instCombineST1ScatterIndex()
1700 (void)IC.Builder.CreateMaskedStore(Val, Ptr, Alignment, Mask); in instCombineST1ScatterIndex()
1702 return IC.eraseInstFromFunction(II); in instCombineST1ScatterIndex()
1708 static std::optional<Instruction *> instCombineSVESDIV(InstCombiner &IC, in instCombineSVESDIV() argument
1710 Type *Int32Ty = IC.Builder.getInt32Ty(); in instCombineSVESDIV()
1723 auto ASRD = IC.Builder.CreateIntrinsic( in instCombineSVESDIV()
1725 return IC.replaceInstUsesWith(II, ASRD); in instCombineSVESDIV()
1730 auto ASRD = IC.Builder.CreateIntrinsic( in instCombineSVESDIV()
1732 auto NEG = IC.Builder.CreateIntrinsic( in instCombineSVESDIV()
1734 return IC.replaceInstUsesWith(II, NEG); in instCombineSVESDIV()
1769 static std::optional<Instruction *> instCombineSVEDupqLane(InstCombiner &IC, in instCombineSVEDupqLane() argument
1797 InsertEltChain = IC.Builder.CreateInsertElement(InsertEltChain, Elts[I], in instCombineSVEDupqLane()
1798 IC.Builder.getInt64(I)); in instCombineSVEDupqLane()
1812 IntegerType *WideTy = IC.Builder.getIntNTy(PatternWidth); in instCombineSVEDupqLane()
1815 ScalableVectorType::get(IC.Builder.getInt32Ty(), PatternElementCount); in instCombineSVEDupqLane()
1817 auto ZeroIdx = ConstantInt::get(IC.Builder.getInt64Ty(), APInt(64, 0)); in instCombineSVEDupqLane()
1818 auto InsertSubvector = IC.Builder.CreateInsertVector( in instCombineSVEDupqLane()
1821 IC.Builder.CreateBitOrPointerCast(InsertSubvector, WideScalableTy); in instCombineSVEDupqLane()
1823 auto WideShuffle = IC.Builder.CreateShuffleVector( in instCombineSVEDupqLane()
1826 IC.Builder.CreateBitOrPointerCast(WideShuffle, II.getType()); in instCombineSVEDupqLane()
1828 return IC.replaceInstUsesWith(II, NarrowBitcast); in instCombineSVEDupqLane()
1831 static std::optional<Instruction *> instCombineMaxMinNM(InstCombiner &IC, in instCombineMaxMinNM() argument
1836 return IC.replaceInstUsesWith(II, A); in instCombineMaxMinNM()
1841 static std::optional<Instruction *> instCombineSVESrshl(InstCombiner &IC, in instCombineSVESrshl() argument
1869 auto LSL = IC.Builder.CreateIntrinsic(Intrinsic::aarch64_sve_lsl, in instCombineSVESrshl()
1872 return IC.replaceInstUsesWith(II, LSL); in instCombineSVESrshl()
1876 AArch64TTIImpl::instCombineIntrinsic(InstCombiner &IC, in instCombineIntrinsic() argument
1884 return instCombineMaxMinNM(IC, II); in instCombineIntrinsic()
1886 return instCombineConvertFromSVBool(IC, II); in instCombineIntrinsic()
1888 return instCombineSVEDup(IC, II); in instCombineIntrinsic()
1890 return instCombineSVEDupX(IC, II); in instCombineIntrinsic()
1893 return instCombineSVECmpNE(IC, II); in instCombineIntrinsic()
1895 return instCombineRDFFR(IC, II); in instCombineIntrinsic()
1898 return instCombineSVELast(IC, II); in instCombineIntrinsic()
1901 return instCombineSVECondLast(IC, II); in instCombineIntrinsic()
1903 return instCombineSVECntElts(IC, II, 2); in instCombineIntrinsic()
1905 return instCombineSVECntElts(IC, II, 4); in instCombineIntrinsic()
1907 return instCombineSVECntElts(IC, II, 8); in instCombineIntrinsic()
1909 return instCombineSVECntElts(IC, II, 16); in instCombineIntrinsic()
1913 return instCombineSVEPTest(IC, II); in instCombineIntrinsic()
1915 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fabd_u); in instCombineIntrinsic()
1917 return instCombineSVEVectorFAdd(IC, II); in instCombineIntrinsic()
1919 return instCombineSVEVectorFAddU(IC, II); in instCombineIntrinsic()
1921 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fdiv_u); in instCombineIntrinsic()
1923 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmax_u); in instCombineIntrinsic()
1925 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmaxnm_u); in instCombineIntrinsic()
1927 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmin_u); in instCombineIntrinsic()
1929 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fminnm_u); in instCombineIntrinsic()
1931 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmla_u); in instCombineIntrinsic()
1933 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmls_u); in instCombineIntrinsic()
1936 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmul_u)) in instCombineIntrinsic()
1938 return instCombineSVEVectorMul(IC, II, Intrinsic::aarch64_sve_fmul_u); in instCombineIntrinsic()
1940 return instCombineSVEVectorMul(IC, II, Intrinsic::aarch64_sve_fmul_u); in instCombineIntrinsic()
1942 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fmulx_u); in instCombineIntrinsic()
1944 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fnmla_u); in instCombineIntrinsic()
1946 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_fnmls_u); in instCombineIntrinsic()
1948 return instCombineSVEVectorFSub(IC, II); in instCombineIntrinsic()
1950 return instCombineSVEVectorFSubU(IC, II); in instCombineIntrinsic()
1952 return instCombineSVEVectorAdd(IC, II); in instCombineIntrinsic()
1956 IC, II, true); in instCombineIntrinsic()
1958 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_mla_u); in instCombineIntrinsic()
1960 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_mls_u); in instCombineIntrinsic()
1963 instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_mul_u)) in instCombineIntrinsic()
1965 return instCombineSVEVectorMul(IC, II, Intrinsic::aarch64_sve_mul_u); in instCombineIntrinsic()
1967 return instCombineSVEVectorMul(IC, II, Intrinsic::aarch64_sve_mul_u); in instCombineIntrinsic()
1969 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_sabd_u); in instCombineIntrinsic()
1971 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_smax_u); in instCombineIntrinsic()
1973 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_smin_u); in instCombineIntrinsic()
1975 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_smulh_u); in instCombineIntrinsic()
1977 return instCombineSVEVectorSub(IC, II); in instCombineIntrinsic()
1981 IC, II, true); in instCombineIntrinsic()
1983 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_uabd_u); in instCombineIntrinsic()
1985 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_umax_u); in instCombineIntrinsic()
1987 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_umin_u); in instCombineIntrinsic()
1989 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_umulh_u); in instCombineIntrinsic()
1991 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_asr_u); in instCombineIntrinsic()
1993 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_lsl_u); in instCombineIntrinsic()
1995 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_lsr_u); in instCombineIntrinsic()
1997 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_and_u); in instCombineIntrinsic()
1999 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_bic_u); in instCombineIntrinsic()
2001 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_eor_u); in instCombineIntrinsic()
2003 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_orr_u); in instCombineIntrinsic()
2005 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_sqsub_u); in instCombineIntrinsic()
2007 return instCombineSVEAllOrNoActive(IC, II, Intrinsic::aarch64_sve_uqsub_u); in instCombineIntrinsic()
2009 return instCombineSVETBL(IC, II); in instCombineIntrinsic()
2014 return instCombineSVEUnpack(IC, II); in instCombineIntrinsic()
2017 return instCombineSVEZip(IC, II); in instCombineIntrinsic()
2019 return instCombineLD1GatherIndex(IC, II); in instCombineIntrinsic()
2021 return instCombineST1ScatterIndex(IC, II); in instCombineIntrinsic()
2023 return instCombineSVELD1(IC, II, DL); in instCombineIntrinsic()
2025 return instCombineSVEST1(IC, II, DL); in instCombineIntrinsic()
2027 return instCombineSVESDIV(IC, II); in instCombineIntrinsic()
2029 return instCombineSVESel(IC, II); in instCombineIntrinsic()
2031 return instCombineSVESrshl(IC, II); in instCombineIntrinsic()
2033 return instCombineSVEDupqLane(IC, II); in instCombineIntrinsic()
2040 InstCombiner &IC, IntrinsicInst &II, APInt OrigDemandedElts, in simplifyDemandedVectorEltsIntrinsic() argument