Lines Matching refs:MipsISD
361 case ISD::SMUL_LOHI: return lowerMulDiv(Op, MipsISD::Mult, true, true, DAG);
362 case ISD::UMUL_LOHI: return lowerMulDiv(Op, MipsISD::Multu, true, true, DAG);
363 case ISD::MULHS: return lowerMulDiv(Op, MipsISD::Mult, false, true, DAG);
364 case ISD::MULHU: return lowerMulDiv(Op, MipsISD::Multu, false, true, DAG);
365 case ISD::MUL: return lowerMulDiv(Op, MipsISD::Mult, true, false, DAG);
366 case ISD::SDIVREM: return lowerMulDiv(Op, MipsISD::DivRem, true, true, DAG);
367 case ISD::UDIVREM: return lowerMulDiv(Op, MipsISD::DivRemU, true, true,
427 SDValue ACCIn = CurDAG->getNode(MipsISD::MTLOHI, DL, MVT::Untyped,
432 MultOpc = MultOpc == ISD::UMUL_LOHI ? MipsISD::MAddu : MipsISD::MAdd;
441 SDValue LoOut = CurDAG->getNode(MipsISD::MFLO, DL, MVT::i32, MAdd);
445 SDValue HiOut = CurDAG->getNode(MipsISD::MFHI, DL, MVT::i32, MAdd);
499 SDValue ACCIn = CurDAG->getNode(MipsISD::MTLOHI, DL, MVT::Untyped,
504 MultOpc = MultOpc == ISD::UMUL_LOHI ? MipsISD::MSubu : MipsISD::MSub;
513 SDValue LoOut = CurDAG->getNode(MipsISD::MFLO, DL, MVT::i32, MSub);
517 SDValue HiOut = CurDAG->getNode(MipsISD::MFHI, DL, MVT::i32, MSub);
537 // Fold zero extensions into MipsISD::VEXTRACT_[SZ]EXT_ELT
540 // - Changes MipsISD::VEXTRACT_[SZ]EXT_ELT to zero extension if its
558 if (Op0Opcode == MipsISD::VEXTRACT_SEXT_ELT ||
559 Op0Opcode == MipsISD::VEXTRACT_ZEXT_ELT) {
575 if ((Op0Opcode == MipsISD::VEXTRACT_ZEXT_ELT && Log2 >= ExtendTySize) ||
578 DAG.MorphNodeTo(Op0.getNode(), MipsISD::VEXTRACT_ZEXT_ELT,
876 return performDSPShiftCombine(MipsISD::SHLL_DSP, N, Ty, DAG, Subtarget);
879 // Fold sign-extensions into MipsISD::VEXTRACT_[SZ]EXT_ELT for MSA and fold
880 // constant splats into MipsISD::SHRA_DSP for DSPr2.
883 // - Changes MipsISD::VEXTRACT_[SZ]EXT_ELT to sign extension if its
911 if (Op0Op0->getOpcode() != MipsISD::VEXTRACT_SEXT_ELT &&
912 Op0Op0->getOpcode() != MipsISD::VEXTRACT_ZEXT_ELT)
919 (Op0Op0->getOpcode() == MipsISD::VEXTRACT_SEXT_ELT &&
923 DAG.MorphNodeTo(Op0Op0.getNode(), MipsISD::VEXTRACT_SEXT_ELT,
934 return performDSPShiftCombine(MipsISD::SHRA_DSP, N, Ty, DAG, Subtarget);
946 return performDSPShiftCombine(MipsISD::SHRL_DSP, N, Ty, DAG, Subtarget);
976 return DAG.getNode(MipsISD::SETCC_DSP, SDLoc(N), Ty, N->getOperand(0),
1017 return DAG.getNode(Signed ? MipsISD::VSMIN : MipsISD::VUMIN, SDLoc(N),
1020 return DAG.getNode(Signed ? MipsISD::VSMAX : MipsISD::VUMAX, SDLoc(N),
1025 if (SetCC.getOpcode() != MipsISD::SETCC_DSP)
1028 return DAG.getNode(MipsISD::SELECT_CC_DSP, SDLoc(N), Ty,
1056 return DAG.getNode(MipsISD::VNOR, SDLoc(N), Ty, NotOp->getOperand(0),
1221 SDValue BP = DAG.getNode(MipsISD::BuildPairF64, DL, MVT::f64, Lo, Hi);
1236 SDValue Lo = DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32,
1238 SDValue Hi = DAG.getNode(MipsISD::ExtractElementF64, DL, MVT::i32,
1269 Lo = DAG.getNode(MipsISD::MFLO, DL, Ty, Mult);
1271 Hi = DAG.getNode(MipsISD::MFHI, DL, Ty, Mult);
1286 return DAG.getNode(MipsISD::MTLOHI, DL, MVT::Untyped, InLo, InHi);
1290 SDValue Lo = DAG.getNode(MipsISD::MFLO, DL, MVT::i32, Op);
1291 SDValue Hi = DAG.getNode(MipsISD::MFHI, DL, MVT::i32, Op);
1509 return lowerDSPIntr(Op, DAG, MipsISD::SHILO);
1511 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBL);
1513 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBR);
1515 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBL);
1517 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBR);
1519 return lowerDSPIntr(Op, DAG, MipsISD::DPA_W_PH);
1521 return lowerDSPIntr(Op, DAG, MipsISD::DPS_W_PH);
1523 return lowerDSPIntr(Op, DAG, MipsISD::DPAX_W_PH);
1525 return lowerDSPIntr(Op, DAG, MipsISD::DPSX_W_PH);
1527 return lowerDSPIntr(Op, DAG, MipsISD::MULSA_W_PH);
1529 return lowerDSPIntr(Op, DAG, MipsISD::Mult);
1531 return lowerDSPIntr(Op, DAG, MipsISD::Multu);
1533 return lowerDSPIntr(Op, DAG, MipsISD::MAdd);
1535 return lowerDSPIntr(Op, DAG, MipsISD::MAddu);
1537 return lowerDSPIntr(Op, DAG, MipsISD::MSub);
1539 return lowerDSPIntr(Op, DAG, MipsISD::MSubu);
1629 return DAG.getNode(MipsISD::VALL_NONZERO, DL, Op->getValueType(0),
1632 return DAG.getNode(MipsISD::VANY_NONZERO, DL, Op->getValueType(0),
1665 return DAG.getNode(MipsISD::VALL_ZERO, DL, Op->getValueType(0),
1668 return DAG.getNode(MipsISD::VANY_ZERO, DL, Op->getValueType(0),
1733 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT);
1737 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT);
1748 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT);
1752 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT);
1893 return DAG.getNode(MipsISD::ILVEV, DL, Op->getValueType(0),
1899 return DAG.getNode(MipsISD::ILVL, DL, Op->getValueType(0),
1905 return DAG.getNode(MipsISD::ILVOD, DL, Op->getValueType(0),
1911 return DAG.getNode(MipsISD::ILVR, DL, Op->getValueType(0),
1923 return DAG.getNode(MipsISD::INSVE, DL, Op->getValueType(0),
1951 return DAG.getNode(MipsISD::VSMAX, DL, Op->getValueType(0),
1957 return DAG.getNode(MipsISD::VUMAX, DL, Op->getValueType(0),
1963 return DAG.getNode(MipsISD::VSMAX, DL, Op->getValueType(0),
1969 return DAG.getNode(MipsISD::VUMAX, DL, Op->getValueType(0),
1975 return DAG.getNode(MipsISD::VSMIN, DL, Op->getValueType(0),
1981 return DAG.getNode(MipsISD::VUMIN, DL, Op->getValueType(0),
1987 return DAG.getNode(MipsISD::VSMIN, DL, Op->getValueType(0),
1993 return DAG.getNode(MipsISD::VUMIN, DL, Op->getValueType(0),
2048 return DAG.getNode(MipsISD::PCKEV, DL, Op->getValueType(0),
2054 return DAG.getNode(MipsISD::PCKOD, DL, Op->getValueType(0),
2064 return DAG.getNode(MipsISD::SHF, DL, Op->getValueType(0),
2085 // Instead we lower to MipsISD::VSHF and match from there.
2086 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2093 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2136 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2168 return lowerDSPIntr(Op, DAG, MipsISD::EXTP);
2170 return lowerDSPIntr(Op, DAG, MipsISD::EXTPDP);
2172 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_W);
2174 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_R_W);
2176 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_RS_W);
2178 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_S_H);
2180 return lowerDSPIntr(Op, DAG, MipsISD::MTHLIP);
2182 return lowerDSPIntr(Op, DAG, MipsISD::MULSAQ_S_W_PH);
2184 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_S_W_PHL);
2186 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_S_W_PHR);
2188 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_SA_W_PHL);
2190 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_SA_W_PHR);
2192 return lowerDSPIntr(Op, DAG, MipsISD::DPAQ_S_W_PH);
2194 return lowerDSPIntr(Op, DAG, MipsISD::DPSQ_S_W_PH);
2196 return lowerDSPIntr(Op, DAG, MipsISD::DPAQ_SA_L_W);
2198 return lowerDSPIntr(Op, DAG, MipsISD::DPSQ_SA_L_W);
2200 return lowerDSPIntr(Op, DAG, MipsISD::DPAQX_S_W_PH);
2202 return lowerDSPIntr(Op, DAG, MipsISD::DPAQX_SA_W_PH);
2204 return lowerDSPIntr(Op, DAG, MipsISD::DPSQX_S_W_PH);
2206 return lowerDSPIntr(Op, DAG, MipsISD::DPSQX_SA_W_PH);
2261 // Lower ISD::EXTRACT_VECTOR_ELT into MipsISD::VEXTRACT_SEXT_ELT.
2281 return DAG.getNode(MipsISD::VEXTRACT_SEXT_ELT, DL, ResTy, Op0, Op1,
2457 return DAG.getNode(MipsISD::SHF, SDLoc(Op), ResTy,
2487 return DAG.getNode(MipsISD::ILVEV, SDLoc(Op), ResTy, Op->getOperand(0),
2517 return DAG.getNode(MipsISD::ILVOD, SDLoc(Op), ResTy, Op->getOperand(0),
2547 return DAG.getNode(MipsISD::ILVL, SDLoc(Op), ResTy, Op->getOperand(0),
2578 return DAG.getNode(MipsISD::ILVR, SDLoc(Op), ResTy, Op->getOperand(0),
2604 return DAG.getNode(MipsISD::PCKEV, SDLoc(Op), ResTy, Op->getOperand(0),
2630 return DAG.getNode(MipsISD::PCKOD, SDLoc(Op), ResTy, Op->getOperand(0),
2688 return DAG.getNode(MipsISD::VSHF, DL, ResTy, MaskVec, Op1, Op0);