Lines Matching refs:MRI
40 LLT DstTy = MRI.getType(Dst); in matchExtractVectorElement()
41 LLT VectorTy = MRI.getType(Vector); in matchExtractVectorElement()
73 getIConstantVRegValWithLookThrough(Index, MRI); in matchExtractVectorElement()
93 MachineInstr *Root = getDefIgnoringCopies(MO.getReg(), MRI); in matchExtractVectorElementWithDifferentIndices()
115 getIConstantVRegValWithLookThrough(Index, MRI); in matchExtractVectorElementWithDifferentIndices()
126 getOpcodeDef<GInsertVectorElement>(Vector, MRI); in matchExtractVectorElementWithDifferentIndices()
133 getIConstantVRegValWithLookThrough(Insert->getIndexReg(), MRI); in matchExtractVectorElementWithDifferentIndices()
166 LLT VectorTy = MRI.getType(Vector); in matchExtractVectorElementWithBuildVector()
170 if (!MRI.hasOneNonDBGUse(Build->getReg(0)) || in matchExtractVectorElementWithBuildVector()
174 APInt Index = getIConstantFromReg(Extract->getIndexReg(), MRI); in matchExtractVectorElementWithBuildVector()
190 MachineInstr *Root = getDefIgnoringCopies(MO.getReg(), MRI); in matchExtractVectorElementWithBuildVectorTrunc()
216 GBuildVectorTrunc *Build = getOpcodeDef<GBuildVectorTrunc>(Vector, MRI); in matchExtractVectorElementWithBuildVectorTrunc()
220 LLT VectorTy = MRI.getType(Vector); in matchExtractVectorElementWithBuildVectorTrunc()
224 if (!MRI.hasOneNonDBGUse(Build->getReg(0)) || in matchExtractVectorElementWithBuildVectorTrunc()
233 getIConstantVRegValWithLookThrough(Index, MRI); in matchExtractVectorElementWithBuildVectorTrunc()
241 LLT DstTy = MRI.getType(Dst); in matchExtractVectorElementWithBuildVectorTrunc()
242 LLT SrcTy = MRI.getType(Build->getSourceReg(0)); in matchExtractVectorElementWithBuildVectorTrunc()
286 APInt Index = getIConstantFromReg(Extract->getIndexReg(), MRI); in matchExtractVectorElementWithShuffleVector()
293 LLT Src1Type = MRI.getType(Shuffle->getSrc1Reg()); in matchExtractVectorElementWithShuffleVector()
301 LLT DstTy = MRI.getType(Dst); in matchExtractVectorElementWithShuffleVector()
324 LLT IdxTy = MRI.getType(Extract->getIndexReg()); in matchExtractVectorElementWithShuffleVector()
325 LLT NewVectorTy = MRI.getType(NewVector); in matchExtractVectorElementWithShuffleVector()
347 LLT DstTy = MRI.getType(Dst); in matchInsertVectorElementOOB()
354 getIConstantVRegValWithLookThrough(Index, MRI); in matchInsertVectorElementOOB()
367 GAdd *Add = cast<GAdd>(MRI.getVRegDef(MO.getReg())); in matchAddOfVScale()
368 GVScale *LHSVScale = cast<GVScale>(MRI.getVRegDef(Add->getLHSReg())); in matchAddOfVScale()
369 GVScale *RHSVScale = cast<GVScale>(MRI.getVRegDef(Add->getRHSReg())); in matchAddOfVScale()
373 if (!MRI.hasOneNonDBGUse(LHSVScale->getReg(0)) || in matchAddOfVScale()
374 !MRI.hasOneNonDBGUse(RHSVScale->getReg(0))) in matchAddOfVScale()
386 GMul *Mul = cast<GMul>(MRI.getVRegDef(MO.getReg())); in matchMulOfVScale()
387 GVScale *LHSVScale = cast<GVScale>(MRI.getVRegDef(Mul->getLHSReg())); in matchMulOfVScale()
389 std::optional<APInt> MaybeRHS = getIConstantVRegVal(Mul->getRHSReg(), MRI); in matchMulOfVScale()
395 if (!MRI.hasOneNonDBGUse(LHSVScale->getReg(0))) in matchMulOfVScale()
407 GSub *Sub = cast<GSub>(MRI.getVRegDef(MO.getReg())); in matchSubOfVScale()
408 GVScale *RHSVScale = cast<GVScale>(MRI.getVRegDef(Sub->getRHSReg())); in matchSubOfVScale()
411 LLT DstTy = MRI.getType(Dst); in matchSubOfVScale()
413 if (!MRI.hasOneNonDBGUse(RHSVScale->getReg(0)) || in matchSubOfVScale()
427 GShl *Shl = cast<GShl>(MRI.getVRegDef(MO.getReg())); in matchShlOfVScale()
428 GVScale *LHSVScale = cast<GVScale>(MRI.getVRegDef(Shl->getSrcReg())); in matchShlOfVScale()
430 std::optional<APInt> MaybeRHS = getIConstantVRegVal(Shl->getShiftReg(), MRI); in matchShlOfVScale()
435 LLT DstTy = MRI.getType(Dst); in matchShlOfVScale()
437 if (!MRI.hasOneNonDBGUse(LHSVScale->getReg(0)) || in matchShlOfVScale()