Lines Matching refs:Op
360 SDValue MipsSETargetLowering::LowerOperation(SDValue Op, in LowerOperation() argument
362 switch(Op.getOpcode()) { in LowerOperation()
363 case ISD::LOAD: return lowerLOAD(Op, DAG); in LowerOperation()
364 case ISD::STORE: return lowerSTORE(Op, DAG); in LowerOperation()
365 case ISD::SMUL_LOHI: return lowerMulDiv(Op, MipsISD::Mult, true, true, DAG); in LowerOperation()
366 case ISD::UMUL_LOHI: return lowerMulDiv(Op, MipsISD::Multu, true, true, DAG); in LowerOperation()
367 case ISD::MULHS: return lowerMulDiv(Op, MipsISD::Mult, false, true, DAG); in LowerOperation()
368 case ISD::MULHU: return lowerMulDiv(Op, MipsISD::Multu, false, true, DAG); in LowerOperation()
369 case ISD::MUL: return lowerMulDiv(Op, MipsISD::Mult, true, false, DAG); in LowerOperation()
370 case ISD::SDIVREM: return lowerMulDiv(Op, MipsISD::DivRem, true, true, DAG); in LowerOperation()
371 case ISD::UDIVREM: return lowerMulDiv(Op, MipsISD::DivRemU, true, true, in LowerOperation()
373 case ISD::INTRINSIC_WO_CHAIN: return lowerINTRINSIC_WO_CHAIN(Op, DAG); in LowerOperation()
374 case ISD::INTRINSIC_W_CHAIN: return lowerINTRINSIC_W_CHAIN(Op, DAG); in LowerOperation()
375 case ISD::INTRINSIC_VOID: return lowerINTRINSIC_VOID(Op, DAG); in LowerOperation()
376 case ISD::EXTRACT_VECTOR_ELT: return lowerEXTRACT_VECTOR_ELT(Op, DAG); in LowerOperation()
377 case ISD::BUILD_VECTOR: return lowerBUILD_VECTOR(Op, DAG); in LowerOperation()
378 case ISD::VECTOR_SHUFFLE: return lowerVECTOR_SHUFFLE(Op, DAG); in LowerOperation()
381 return MipsTargetLowering::LowerOperation(Op, DAG); in LowerOperation()
1209 SDValue MipsSETargetLowering::lowerLOAD(SDValue Op, SelectionDAG &DAG) const { in lowerLOAD() argument
1210 LoadSDNode &Nd = *cast<LoadSDNode>(Op); in lowerLOAD()
1213 return MipsTargetLowering::lowerLOAD(Op, DAG); in lowerLOAD()
1216 SDLoc DL(Op); in lowerLOAD()
1241 SDValue MipsSETargetLowering::lowerSTORE(SDValue Op, SelectionDAG &DAG) const { in lowerSTORE() argument
1242 StoreSDNode &Nd = *cast<StoreSDNode>(Op); in lowerSTORE()
1245 return MipsTargetLowering::lowerSTORE(Op, DAG); in lowerSTORE()
1248 SDLoc DL(Op); in lowerSTORE()
1271 SDValue MipsSETargetLowering::lowerMulDiv(SDValue Op, unsigned NewOpc, in lowerMulDiv() argument
1277 EVT Ty = Op.getOperand(0).getValueType(); in lowerMulDiv()
1278 SDLoc DL(Op); in lowerMulDiv()
1280 Op.getOperand(0), Op.getOperand(1)); in lowerMulDiv()
1303 static SDValue extractLOHI(SDValue Op, const SDLoc &DL, SelectionDAG &DAG) { in extractLOHI() argument
1304 SDValue Lo = DAG.getNode(MipsISD::MFLO, DL, MVT::i32, Op); in extractLOHI()
1305 SDValue Hi = DAG.getNode(MipsISD::MFHI, DL, MVT::i32, Op); in extractLOHI()
1321 static SDValue lowerDSPIntr(SDValue Op, SelectionDAG &DAG, unsigned Opc) { in lowerDSPIntr() argument
1322 SDLoc DL(Op); in lowerDSPIntr()
1323 bool HasChainIn = Op->getOperand(0).getValueType() == MVT::Other; in lowerDSPIntr()
1329 Ops.push_back(Op->getOperand(OpNo++)); in lowerDSPIntr()
1332 assert(Op->getOperand(OpNo).getOpcode() == ISD::TargetConstant); in lowerDSPIntr()
1335 SDValue Opnd = Op->getOperand(++OpNo), In64; in lowerDSPIntr()
1343 for (++OpNo ; OpNo < Op->getNumOperands(); ++OpNo) in lowerDSPIntr()
1344 Ops.push_back(Op->getOperand(OpNo)); in lowerDSPIntr()
1353 for (SDNode::value_iterator I = Op->value_begin(), E = Op->value_end(); in lowerDSPIntr()
1370 static SDValue lowerMSACopyIntr(SDValue Op, SelectionDAG &DAG, unsigned Opc) { in lowerMSACopyIntr() argument
1371 SDLoc DL(Op); in lowerMSACopyIntr()
1372 SDValue Vec = Op->getOperand(1); in lowerMSACopyIntr()
1373 SDValue Idx = Op->getOperand(2); in lowerMSACopyIntr()
1374 EVT ResTy = Op->getValueType(0); in lowerMSACopyIntr()
1383 static SDValue lowerMSASplatZExt(SDValue Op, unsigned OpNr, SelectionDAG &DAG) { in lowerMSASplatZExt() argument
1384 EVT ResVecTy = Op->getValueType(0); in lowerMSASplatZExt()
1386 SDLoc DL(Op); in lowerMSASplatZExt()
1392 SDValue LaneB = Op->getOperand(2); in lowerMSASplatZExt()
1412 static SDValue lowerMSASplatImm(SDValue Op, unsigned ImmOp, SelectionDAG &DAG) { in lowerMSASplatImm() argument
1413 return DAG.getConstant(Op->getConstantOperandVal(ImmOp), SDLoc(Op), in lowerMSASplatImm()
1414 Op->getValueType(0)); in lowerMSASplatImm()
1453 static SDValue lowerMSABinaryBitImmIntr(SDValue Op, SelectionDAG &DAG, in lowerMSABinaryBitImmIntr() argument
1456 EVT VecTy = Op->getValueType(0); in lowerMSABinaryBitImmIntr()
1458 SDLoc DL(Op); in lowerMSABinaryBitImmIntr()
1494 return DAG.getNode(Opc, DL, VecTy, Op->getOperand(1), Exp2Imm); in lowerMSABinaryBitImmIntr()
1497 static SDValue lowerMSABitClear(SDValue Op, SelectionDAG &DAG) { in lowerMSABitClear() argument
1498 EVT ResTy = Op->getValueType(0); in lowerMSABitClear()
1499 SDLoc DL(Op); in lowerMSABitClear()
1501 SDValue Bit = DAG.getNode(ISD::SHL, DL, ResTy, One, Op->getOperand(2)); in lowerMSABitClear()
1503 return DAG.getNode(ISD::AND, DL, ResTy, Op->getOperand(1), in lowerMSABitClear()
1507 static SDValue lowerMSABitClearImm(SDValue Op, SelectionDAG &DAG) { in lowerMSABitClearImm() argument
1508 SDLoc DL(Op); in lowerMSABitClearImm()
1509 EVT ResTy = Op->getValueType(0); in lowerMSABitClearImm()
1511 << cast<ConstantSDNode>(Op->getOperand(2))->getAPIntValue(); in lowerMSABitClearImm()
1514 return DAG.getNode(ISD::AND, DL, ResTy, Op->getOperand(1), BitMask); in lowerMSABitClearImm()
1517 SDValue MipsSETargetLowering::lowerINTRINSIC_WO_CHAIN(SDValue Op, in lowerINTRINSIC_WO_CHAIN() argument
1519 SDLoc DL(Op); in lowerINTRINSIC_WO_CHAIN()
1521 switch (cast<ConstantSDNode>(Op->getOperand(0))->getZExtValue()) { in lowerINTRINSIC_WO_CHAIN()
1525 return lowerDSPIntr(Op, DAG, MipsISD::SHILO); in lowerINTRINSIC_WO_CHAIN()
1527 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBL); in lowerINTRINSIC_WO_CHAIN()
1529 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBR); in lowerINTRINSIC_WO_CHAIN()
1531 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBL); in lowerINTRINSIC_WO_CHAIN()
1533 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBR); in lowerINTRINSIC_WO_CHAIN()
1535 return lowerDSPIntr(Op, DAG, MipsISD::DPA_W_PH); in lowerINTRINSIC_WO_CHAIN()
1537 return lowerDSPIntr(Op, DAG, MipsISD::DPS_W_PH); in lowerINTRINSIC_WO_CHAIN()
1539 return lowerDSPIntr(Op, DAG, MipsISD::DPAX_W_PH); in lowerINTRINSIC_WO_CHAIN()
1541 return lowerDSPIntr(Op, DAG, MipsISD::DPSX_W_PH); in lowerINTRINSIC_WO_CHAIN()
1543 return lowerDSPIntr(Op, DAG, MipsISD::MULSA_W_PH); in lowerINTRINSIC_WO_CHAIN()
1545 return lowerDSPIntr(Op, DAG, MipsISD::Mult); in lowerINTRINSIC_WO_CHAIN()
1547 return lowerDSPIntr(Op, DAG, MipsISD::Multu); in lowerINTRINSIC_WO_CHAIN()
1549 return lowerDSPIntr(Op, DAG, MipsISD::MAdd); in lowerINTRINSIC_WO_CHAIN()
1551 return lowerDSPIntr(Op, DAG, MipsISD::MAddu); in lowerINTRINSIC_WO_CHAIN()
1553 return lowerDSPIntr(Op, DAG, MipsISD::MSub); in lowerINTRINSIC_WO_CHAIN()
1555 return lowerDSPIntr(Op, DAG, MipsISD::MSubu); in lowerINTRINSIC_WO_CHAIN()
1560 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1561 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1566 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1567 lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
1569 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1570 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1572 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1573 lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
1578 return lowerMSABitClear(Op, DAG); in lowerINTRINSIC_WO_CHAIN()
1583 return lowerMSABitClearImm(Op, DAG); in lowerINTRINSIC_WO_CHAIN()
1589 EVT VecTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1592 Op->getConstantOperandVal(3)); in lowerINTRINSIC_WO_CHAIN()
1595 Op->getOperand(2), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1602 EVT VecTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1605 Op->getConstantOperandVal(3)); in lowerINTRINSIC_WO_CHAIN()
1608 Op->getOperand(2), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1611 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3), in lowerINTRINSIC_WO_CHAIN()
1612 Op->getOperand(2), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1614 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1615 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(2), in lowerINTRINSIC_WO_CHAIN()
1616 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1618 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3), in lowerINTRINSIC_WO_CHAIN()
1619 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1621 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1622 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1623 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1628 EVT VecTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1631 return DAG.getNode(ISD::XOR, DL, VecTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1633 Op->getOperand(2))); in lowerINTRINSIC_WO_CHAIN()
1639 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::XOR, Op->getOperand(2), in lowerINTRINSIC_WO_CHAIN()
1645 return DAG.getNode(MipsISD::VALL_NONZERO, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1646 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1648 return DAG.getNode(MipsISD::VANY_NONZERO, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1649 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1652 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1653 Op->getOperand(1), Op->getOperand(3), in lowerINTRINSIC_WO_CHAIN()
1654 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1657 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1658 Op->getOperand(1), lowerMSASplatImm(Op, 3, DAG), in lowerINTRINSIC_WO_CHAIN()
1659 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1664 EVT VecTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1667 return DAG.getNode(ISD::OR, DL, VecTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1669 Op->getOperand(2))); in lowerINTRINSIC_WO_CHAIN()
1675 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::OR, Op->getOperand(2), in lowerINTRINSIC_WO_CHAIN()
1681 return DAG.getNode(MipsISD::VALL_ZERO, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1682 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1684 return DAG.getNode(MipsISD::VANY_ZERO, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1685 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1690 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1691 Op->getOperand(2), ISD::SETEQ); in lowerINTRINSIC_WO_CHAIN()
1696 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1697 lowerMSASplatImm(Op, 2, DAG), ISD::SETEQ); in lowerINTRINSIC_WO_CHAIN()
1702 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1703 Op->getOperand(2), ISD::SETLE); in lowerINTRINSIC_WO_CHAIN()
1708 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1709 lowerMSASplatImm(Op, 2, DAG), ISD::SETLE); in lowerINTRINSIC_WO_CHAIN()
1714 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1715 Op->getOperand(2), ISD::SETULE); in lowerINTRINSIC_WO_CHAIN()
1720 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1721 lowerMSASplatImm(Op, 2, DAG), ISD::SETULE); in lowerINTRINSIC_WO_CHAIN()
1726 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1727 Op->getOperand(2), ISD::SETLT); in lowerINTRINSIC_WO_CHAIN()
1732 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1733 lowerMSASplatImm(Op, 2, DAG), ISD::SETLT); in lowerINTRINSIC_WO_CHAIN()
1738 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1739 Op->getOperand(2), ISD::SETULT); in lowerINTRINSIC_WO_CHAIN()
1744 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1745 lowerMSASplatImm(Op, 2, DAG), ISD::SETULT); in lowerINTRINSIC_WO_CHAIN()
1749 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT); in lowerINTRINSIC_WO_CHAIN()
1753 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT); in lowerINTRINSIC_WO_CHAIN()
1757 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(Op), in lowerINTRINSIC_WO_CHAIN()
1758 Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1759 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1764 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT); in lowerINTRINSIC_WO_CHAIN()
1768 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT); in lowerINTRINSIC_WO_CHAIN()
1775 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(Op), in lowerINTRINSIC_WO_CHAIN()
1776 Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1777 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1783 return DAG.getNode(ISD::SDIV, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1784 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1789 return DAG.getNode(ISD::UDIV, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1790 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1794 return DAG.getNode(ISD::FADD, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1795 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1800 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1801 Op->getOperand(2), ISD::SETOEQ); in lowerINTRINSIC_WO_CHAIN()
1804 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1805 Op->getOperand(2), ISD::SETOLE); in lowerINTRINSIC_WO_CHAIN()
1808 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1809 Op->getOperand(2), ISD::SETOLT); in lowerINTRINSIC_WO_CHAIN()
1812 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1813 Op->getOperand(2), ISD::SETONE); in lowerINTRINSIC_WO_CHAIN()
1816 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1817 Op->getOperand(2), ISD::SETO); in lowerINTRINSIC_WO_CHAIN()
1820 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1821 Op->getOperand(2), ISD::SETUEQ); in lowerINTRINSIC_WO_CHAIN()
1824 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1825 Op->getOperand(2), ISD::SETULE); in lowerINTRINSIC_WO_CHAIN()
1828 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1829 Op->getOperand(2), ISD::SETULT); in lowerINTRINSIC_WO_CHAIN()
1832 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1833 Op->getOperand(2), ISD::SETUO); in lowerINTRINSIC_WO_CHAIN()
1836 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1837 Op->getOperand(2), ISD::SETUNE); in lowerINTRINSIC_WO_CHAIN()
1841 return DAG.getNode(ISD::FDIV, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1842 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1846 return DAG.getNode(ISD::UINT_TO_FP, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1847 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1850 return DAG.getNode(ISD::SINT_TO_FP, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1851 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1856 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1858 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1867 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1869 ISD::FMUL, SDLoc(Op), ResTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1870 DAG.getNode(ISD::FEXP2, SDLoc(Op), ResTy, Op->getOperand(2))); in lowerINTRINSIC_WO_CHAIN()
1874 return DAG.getNode(ISD::FLOG2, DL, Op->getValueType(0), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1877 return DAG.getNode(ISD::FMA, SDLoc(Op), Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1878 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3)); in lowerINTRINSIC_WO_CHAIN()
1882 return DAG.getNode(ISD::FMUL, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1883 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1888 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1889 return DAG.getNode(ISD::FSUB, SDLoc(Op), ResTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1890 DAG.getNode(ISD::FMUL, SDLoc(Op), ResTy, in lowerINTRINSIC_WO_CHAIN()
1891 Op->getOperand(2), Op->getOperand(3))); in lowerINTRINSIC_WO_CHAIN()
1895 return DAG.getNode(ISD::FRINT, DL, Op->getValueType(0), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1898 return DAG.getNode(ISD::FSQRT, DL, Op->getValueType(0), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1902 return DAG.getNode(ISD::FSUB, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1903 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1907 return DAG.getNode(ISD::FP_TO_UINT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1908 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1911 return DAG.getNode(ISD::FP_TO_SINT, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1912 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
1917 return DAG.getNode(MipsISD::ILVEV, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1918 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1923 return DAG.getNode(MipsISD::ILVL, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1924 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1929 return DAG.getNode(MipsISD::ILVOD, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1930 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1935 return DAG.getNode(MipsISD::ILVR, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1936 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1941 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(Op), Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1942 Op->getOperand(1), Op->getOperand(3), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1947 return DAG.getNode(MipsISD::INSVE, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1948 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3), in lowerINTRINSIC_WO_CHAIN()
1954 return lowerMSASplatImm(Op, 1, DAG); in lowerINTRINSIC_WO_CHAIN()
1957 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1958 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1959 DAG.getNode(ISD::SHL, SDLoc(Op), ResTy, in lowerINTRINSIC_WO_CHAIN()
1960 Op->getOperand(2), Op->getOperand(3))); in lowerINTRINSIC_WO_CHAIN()
1966 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
1967 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
1968 DAG.getNode(ISD::MUL, SDLoc(Op), ResTy, in lowerINTRINSIC_WO_CHAIN()
1969 Op->getOperand(2), Op->getOperand(3))); in lowerINTRINSIC_WO_CHAIN()
1975 return DAG.getNode(MipsISD::VSMAX, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1976 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1981 return DAG.getNode(MipsISD::VUMAX, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1982 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
1987 return DAG.getNode(MipsISD::VSMAX, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1988 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
1993 return DAG.getNode(MipsISD::VUMAX, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
1994 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
1999 return DAG.getNode(MipsISD::VSMIN, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2000 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2005 return DAG.getNode(MipsISD::VUMIN, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2006 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2011 return DAG.getNode(MipsISD::VSMIN, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2012 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2017 return DAG.getNode(MipsISD::VUMIN, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2018 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2023 return DAG.getNode(ISD::SREM, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2024 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2029 return DAG.getNode(ISD::UREM, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2030 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2035 return DAG.getNode(ISD::MUL, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2036 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2041 EVT ResTy = Op->getValueType(0); in lowerINTRINSIC_WO_CHAIN()
2042 return DAG.getNode(ISD::SUB, SDLoc(Op), ResTy, Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2043 DAG.getNode(ISD::MUL, SDLoc(Op), ResTy, in lowerINTRINSIC_WO_CHAIN()
2044 Op->getOperand(2), Op->getOperand(3))); in lowerINTRINSIC_WO_CHAIN()
2050 return DAG.getNode(ISD::CTLZ, DL, Op->getValueType(0), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
2052 SDValue Res = DAG.getNode(ISD::OR, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2053 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2057 SDValue Res = DAG.getNode(ISD::OR, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2058 Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2059 lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2063 return DAG.getNode(ISD::OR, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2064 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2066 return DAG.getNode(ISD::OR, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2067 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2072 return DAG.getNode(MipsISD::PCKEV, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2073 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2078 return DAG.getNode(MipsISD::PCKOD, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2079 Op->getOperand(1), Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2084 return DAG.getNode(ISD::CTPOP, DL, Op->getValueType(0), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
2088 return DAG.getNode(MipsISD::SHF, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2089 Op->getOperand(2), Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
2094 return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2095 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2100 return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2101 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2110 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2111 lowerMSASplatZExt(Op, 2, DAG), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2112 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
2117 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2118 lowerMSASplatImm(Op, 2, DAG), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2119 Op->getOperand(1)); in lowerINTRINSIC_WO_CHAIN()
2124 return DAG.getNode(ISD::SRA, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2125 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2130 return DAG.getNode(ISD::SRA, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2131 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2136 return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2137 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2142 return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2143 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2148 return DAG.getNode(ISD::SUB, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2149 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2154 return DAG.getNode(ISD::SUB, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2155 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2160 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2161 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3)); in lowerINTRINSIC_WO_CHAIN()
2163 return DAG.getNode(ISD::XOR, DL, Op->getValueType(0), Op->getOperand(1), in lowerINTRINSIC_WO_CHAIN()
2164 Op->getOperand(2)); in lowerINTRINSIC_WO_CHAIN()
2166 return DAG.getNode(ISD::XOR, DL, Op->getValueType(0), in lowerINTRINSIC_WO_CHAIN()
2167 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG)); in lowerINTRINSIC_WO_CHAIN()
2175 static SDValue lowerMSALoadIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr) { in lowerMSALoadIntr() argument
2176 SDLoc DL(Op); in lowerMSALoadIntr()
2177 SDValue ChainIn = Op->getOperand(0); in lowerMSALoadIntr()
2178 SDValue Address = Op->getOperand(2); in lowerMSALoadIntr()
2179 SDValue Offset = Op->getOperand(3); in lowerMSALoadIntr()
2180 EVT ResTy = Op->getValueType(0); in lowerMSALoadIntr()
2189 SDValue MipsSETargetLowering::lowerINTRINSIC_W_CHAIN(SDValue Op, in lowerINTRINSIC_W_CHAIN() argument
2191 unsigned Intr = cast<ConstantSDNode>(Op->getOperand(1))->getZExtValue(); in lowerINTRINSIC_W_CHAIN()
2196 return lowerDSPIntr(Op, DAG, MipsISD::EXTP); in lowerINTRINSIC_W_CHAIN()
2198 return lowerDSPIntr(Op, DAG, MipsISD::EXTPDP); in lowerINTRINSIC_W_CHAIN()
2200 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_W); in lowerINTRINSIC_W_CHAIN()
2202 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_R_W); in lowerINTRINSIC_W_CHAIN()
2204 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_RS_W); in lowerINTRINSIC_W_CHAIN()
2206 return lowerDSPIntr(Op, DAG, MipsISD::EXTR_S_H); in lowerINTRINSIC_W_CHAIN()
2208 return lowerDSPIntr(Op, DAG, MipsISD::MTHLIP); in lowerINTRINSIC_W_CHAIN()
2210 return lowerDSPIntr(Op, DAG, MipsISD::MULSAQ_S_W_PH); in lowerINTRINSIC_W_CHAIN()
2212 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_S_W_PHL); in lowerINTRINSIC_W_CHAIN()
2214 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_S_W_PHR); in lowerINTRINSIC_W_CHAIN()
2216 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_SA_W_PHL); in lowerINTRINSIC_W_CHAIN()
2218 return lowerDSPIntr(Op, DAG, MipsISD::MAQ_SA_W_PHR); in lowerINTRINSIC_W_CHAIN()
2220 return lowerDSPIntr(Op, DAG, MipsISD::DPAQ_S_W_PH); in lowerINTRINSIC_W_CHAIN()
2222 return lowerDSPIntr(Op, DAG, MipsISD::DPSQ_S_W_PH); in lowerINTRINSIC_W_CHAIN()
2224 return lowerDSPIntr(Op, DAG, MipsISD::DPAQ_SA_L_W); in lowerINTRINSIC_W_CHAIN()
2226 return lowerDSPIntr(Op, DAG, MipsISD::DPSQ_SA_L_W); in lowerINTRINSIC_W_CHAIN()
2228 return lowerDSPIntr(Op, DAG, MipsISD::DPAQX_S_W_PH); in lowerINTRINSIC_W_CHAIN()
2230 return lowerDSPIntr(Op, DAG, MipsISD::DPAQX_SA_W_PH); in lowerINTRINSIC_W_CHAIN()
2232 return lowerDSPIntr(Op, DAG, MipsISD::DPSQX_S_W_PH); in lowerINTRINSIC_W_CHAIN()
2234 return lowerDSPIntr(Op, DAG, MipsISD::DPSQX_SA_W_PH); in lowerINTRINSIC_W_CHAIN()
2239 return lowerMSALoadIntr(Op, DAG, Intr); in lowerINTRINSIC_W_CHAIN()
2243 static SDValue lowerMSAStoreIntr(SDValue Op, SelectionDAG &DAG, unsigned Intr) { in lowerMSAStoreIntr() argument
2244 SDLoc DL(Op); in lowerMSAStoreIntr()
2245 SDValue ChainIn = Op->getOperand(0); in lowerMSAStoreIntr()
2246 SDValue Value = Op->getOperand(2); in lowerMSAStoreIntr()
2247 SDValue Address = Op->getOperand(3); in lowerMSAStoreIntr()
2248 SDValue Offset = Op->getOperand(4); in lowerMSAStoreIntr()
2257 SDValue MipsSETargetLowering::lowerINTRINSIC_VOID(SDValue Op, in lowerINTRINSIC_VOID() argument
2259 unsigned Intr = cast<ConstantSDNode>(Op->getOperand(1))->getZExtValue(); in lowerINTRINSIC_VOID()
2267 return lowerMSAStoreIntr(Op, DAG, Intr); in lowerINTRINSIC_VOID()
2297 lowerEXTRACT_VECTOR_ELT(SDValue Op, SelectionDAG &DAG) const { in lowerEXTRACT_VECTOR_ELT() argument
2298 SDLoc DL(Op); in lowerEXTRACT_VECTOR_ELT()
2299 EVT ResTy = Op->getValueType(0); in lowerEXTRACT_VECTOR_ELT()
2300 SDValue Op0 = Op->getOperand(0); in lowerEXTRACT_VECTOR_ELT()
2307 SDValue Op1 = Op->getOperand(1); in lowerEXTRACT_VECTOR_ELT()
2313 return Op; in lowerEXTRACT_VECTOR_ELT()
2316 static bool isConstantOrUndef(const SDValue Op) { in isConstantOrUndef() argument
2317 if (Op->isUndef()) in isConstantOrUndef()
2319 if (isa<ConstantSDNode>(Op)) in isConstantOrUndef()
2321 if (isa<ConstantFPSDNode>(Op)) in isConstantOrUndef()
2326 static bool isConstantOrUndefBUILD_VECTOR(const BuildVectorSDNode *Op) { in isConstantOrUndefBUILD_VECTOR() argument
2327 for (unsigned i = 0; i < Op->getNumOperands(); ++i) in isConstantOrUndefBUILD_VECTOR()
2328 if (isConstantOrUndef(Op->getOperand(i))) in isConstantOrUndefBUILD_VECTOR()
2346 SDValue MipsSETargetLowering::lowerBUILD_VECTOR(SDValue Op, in lowerBUILD_VECTOR() argument
2348 BuildVectorSDNode *Node = cast<BuildVectorSDNode>(Op); in lowerBUILD_VECTOR()
2349 EVT ResTy = Op->getValueType(0); in lowerBUILD_VECTOR()
2350 SDLoc DL(Op); in lowerBUILD_VECTOR()
2371 return Op; in lowerBUILD_VECTOR()
2401 return Op; in lowerBUILD_VECTOR()
2441 static SDValue lowerVECTOR_SHUFFLE_SHF(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_SHF() argument
2485 SDLoc DL(Op); in lowerVECTOR_SHUFFLE_SHF()
2487 DAG.getConstant(Imm, DL, MVT::i32), Op->getOperand(0)); in lowerVECTOR_SHUFFLE_SHF()
2521 static bool isVECTOR_SHUFFLE_SPLATI(SDValue Op, EVT ResTy, in isVECTOR_SHUFFLE_SPLATI() argument
2553 static SDValue lowerVECTOR_SHUFFLE_ILVEV(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_ILVEV() argument
2566 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVEV()
2568 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVEV()
2575 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVEV()
2577 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVEV()
2581 return DAG.getNode(MipsISD::ILVEV, SDLoc(Op), ResTy, Ws, Wt); in lowerVECTOR_SHUFFLE_ILVEV()
2599 static SDValue lowerVECTOR_SHUFFLE_ILVOD(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_ILVOD() argument
2612 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVOD()
2614 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVOD()
2621 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVOD()
2623 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVOD()
2627 return DAG.getNode(MipsISD::ILVOD, SDLoc(Op), ResTy, Wt, Ws); in lowerVECTOR_SHUFFLE_ILVOD()
2646 static SDValue lowerVECTOR_SHUFFLE_ILVR(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_ILVR() argument
2659 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVR()
2661 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVR()
2668 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVR()
2670 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVR()
2674 return DAG.getNode(MipsISD::ILVR, SDLoc(Op), ResTy, Ws, Wt); in lowerVECTOR_SHUFFLE_ILVR()
2693 static SDValue lowerVECTOR_SHUFFLE_ILVL(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_ILVL() argument
2707 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVL()
2709 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVL()
2716 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_ILVL()
2719 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_ILVL()
2723 return DAG.getNode(MipsISD::ILVL, SDLoc(Op), ResTy, Ws, Wt); in lowerVECTOR_SHUFFLE_ILVL()
2741 static SDValue lowerVECTOR_SHUFFLE_PCKEV(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_PCKEV() argument
2753 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_PCKEV()
2755 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_PCKEV()
2760 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_PCKEV()
2762 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_PCKEV()
2766 return DAG.getNode(MipsISD::PCKEV, SDLoc(Op), ResTy, Ws, Wt); in lowerVECTOR_SHUFFLE_PCKEV()
2784 static SDValue lowerVECTOR_SHUFFLE_PCKOD(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_PCKOD() argument
2796 Wt = Op->getOperand(0); in lowerVECTOR_SHUFFLE_PCKOD()
2798 Wt = Op->getOperand(1); in lowerVECTOR_SHUFFLE_PCKOD()
2803 Ws = Op->getOperand(0); in lowerVECTOR_SHUFFLE_PCKOD()
2805 Ws = Op->getOperand(1); in lowerVECTOR_SHUFFLE_PCKOD()
2809 return DAG.getNode(MipsISD::PCKOD, SDLoc(Op), ResTy, Ws, Wt); in lowerVECTOR_SHUFFLE_PCKOD()
2820 static SDValue lowerVECTOR_SHUFFLE_VSHF(SDValue Op, EVT ResTy, in lowerVECTOR_SHUFFLE_VSHF() argument
2830 SDLoc DL(Op); in lowerVECTOR_SHUFFLE_VSHF()
2850 Op0 = Op->getOperand(0); in lowerVECTOR_SHUFFLE_VSHF()
2851 Op1 = Op->getOperand(1); in lowerVECTOR_SHUFFLE_VSHF()
2853 Op0 = Op1 = Op->getOperand(0); in lowerVECTOR_SHUFFLE_VSHF()
2855 Op0 = Op1 = Op->getOperand(1); in lowerVECTOR_SHUFFLE_VSHF()
2871 SDValue MipsSETargetLowering::lowerVECTOR_SHUFFLE(SDValue Op, in lowerVECTOR_SHUFFLE() argument
2873 ShuffleVectorSDNode *Node = cast<ShuffleVectorSDNode>(Op); in lowerVECTOR_SHUFFLE()
2874 EVT ResTy = Op->getValueType(0); in lowerVECTOR_SHUFFLE()
2887 if (isVECTOR_SHUFFLE_SPLATI(Op, ResTy, Indices, DAG)) in lowerVECTOR_SHUFFLE()
2888 return lowerVECTOR_SHUFFLE_VSHF(Op, ResTy, Indices, DAG); in lowerVECTOR_SHUFFLE()
2890 if ((Result = lowerVECTOR_SHUFFLE_ILVEV(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2892 if ((Result = lowerVECTOR_SHUFFLE_ILVOD(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2894 if ((Result = lowerVECTOR_SHUFFLE_ILVL(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2896 if ((Result = lowerVECTOR_SHUFFLE_ILVR(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2898 if ((Result = lowerVECTOR_SHUFFLE_PCKEV(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2900 if ((Result = lowerVECTOR_SHUFFLE_PCKOD(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2902 if ((Result = lowerVECTOR_SHUFFLE_SHF(Op, ResTy, Indices, DAG))) in lowerVECTOR_SHUFFLE()
2904 return lowerVECTOR_SHUFFLE_VSHF(Op, ResTy, Indices, DAG); in lowerVECTOR_SHUFFLE()