Lines Matching defs:MatchInfo
158 ShuffleVectorPseudo &MatchInfo) {
183 MatchInfo = ShuffleVectorPseudo(Opcode, Dst, {Src});
194 ShuffleVectorPseudo &MatchInfo) {
205 MatchInfo = ShuffleVectorPseudo(Opc, Dst, {V1, V2});
213 /// \param [out] MatchInfo - Either G_UZP1 or G_UZP2 on success.
215 ShuffleVectorPseudo &MatchInfo) {
226 MatchInfo = ShuffleVectorPseudo(Opc, Dst, {V1, V2});
231 ShuffleVectorPseudo &MatchInfo) {
242 MatchInfo = ShuffleVectorPseudo(Opc, Dst, {V1, V2});
249 ShuffleVectorPseudo &MatchInfo) {
281 MatchInfo = ShuffleVectorPseudo(AArch64::G_DUP, MI.getOperand(0).getReg(),
289 ShuffleVectorPseudo &MatchInfo) {
298 MatchInfo =
304 ShuffleVectorPseudo &MatchInfo) {
313 if (matchDupFromInsertVectorElt(Lane, MI, MRI, MatchInfo))
315 if (matchDupFromBuildVector(Lane, MI, MRI, MatchInfo))
350 ShuffleVectorPseudo &MatchInfo) {
367 MatchInfo = ShuffleVectorPseudo(AArch64::G_EXT, Dst, {V1, V1, Imm});
375 MatchInfo = ShuffleVectorPseudo(AArch64::G_EXT, Dst, {V1, V2, Imm});
382 ShuffleVectorPseudo &MatchInfo) {
384 MIRBuilder.buildInstr(MatchInfo.Opc, {MatchInfo.Dst}, MatchInfo.SrcOps);
391 void applyEXT(MachineInstr &MI, ShuffleVectorPseudo &MatchInfo) {
393 if (MatchInfo.SrcOps[2].getImm() == 0)
394 MIRBuilder.buildCopy(MatchInfo.Dst, MatchInfo.SrcOps[0]);
398 MIRBuilder.buildConstant(LLT::scalar(32), MatchInfo.SrcOps[2].getImm());
399 MIRBuilder.buildInstr(MatchInfo.Opc, {MatchInfo.Dst},
400 {MatchInfo.SrcOps[0], MatchInfo.SrcOps[1], Cst});
466 std::tuple<Register, int, Register, int> &MatchInfo) {
488 MatchInfo = std::make_tuple(DstVec, DstLane, SrcVec, SrcLane);
494 std::tuple<Register, int, Register, int> &MatchInfo) {
500 std::tie(DstVec, DstLane, SrcVec, SrcLane) = MatchInfo;
659 /// \p MatchInfo - The new RHS immediate and predicate on success
664 std::pair<uint64_t, CmpInst::Predicate> &MatchInfo) {
669 MatchInfo = *MaybeNewImmAndPred;
676 MachineInstr &MI, std::pair<uint64_t, CmpInst::Predicate> &MatchInfo,
682 MatchInfo.first);
685 MI.getOperand(1).setPredicate(MatchInfo.second);
690 std::pair<unsigned, int> &MatchInfo) {
740 MatchInfo.first = Opc;
741 MatchInfo.second = *LaneIdx;
746 MachineIRBuilder &B, std::pair<unsigned, int> &MatchInfo) {
752 auto Lane = B.buildConstant(LLT::scalar(64), MatchInfo.second);
763 B.buildInstr(MatchInfo.first, {MI.getOperand(0).getReg()}, {DupSrc, Lane});
1094 Register &MatchInfo) {
1119 MatchInfo = ExtSrc1;