|
reference, declaration → definition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced
|
References
lib/Target/Mips/MipsSEISelLowering.cpp 1542 SDLoc DL(Op);
1543 unsigned Intrinsic = cast<ConstantSDNode>(Op->getOperand(0))->getZExtValue();
1548 return lowerDSPIntr(Op, DAG, MipsISD::SHILO);
1550 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBL);
1552 return lowerDSPIntr(Op, DAG, MipsISD::DPAU_H_QBR);
1554 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBL);
1556 return lowerDSPIntr(Op, DAG, MipsISD::DPSU_H_QBR);
1558 return lowerDSPIntr(Op, DAG, MipsISD::DPA_W_PH);
1560 return lowerDSPIntr(Op, DAG, MipsISD::DPS_W_PH);
1562 return lowerDSPIntr(Op, DAG, MipsISD::DPAX_W_PH);
1564 return lowerDSPIntr(Op, DAG, MipsISD::DPSX_W_PH);
1566 return lowerDSPIntr(Op, DAG, MipsISD::MULSA_W_PH);
1568 return lowerDSPIntr(Op, DAG, MipsISD::Mult);
1570 return lowerDSPIntr(Op, DAG, MipsISD::Multu);
1572 return lowerDSPIntr(Op, DAG, MipsISD::MAdd);
1574 return lowerDSPIntr(Op, DAG, MipsISD::MAddu);
1576 return lowerDSPIntr(Op, DAG, MipsISD::MSub);
1578 return lowerDSPIntr(Op, DAG, MipsISD::MSubu);
1583 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1),
1583 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1),
1584 Op->getOperand(2));
1589 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1),
1589 return DAG.getNode(ISD::ADD, DL, Op->getValueType(0), Op->getOperand(1),
1590 lowerMSASplatImm(Op, 2, DAG));
1592 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1),
1592 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1),
1593 Op->getOperand(2));
1595 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1),
1595 return DAG.getNode(ISD::AND, DL, Op->getValueType(0), Op->getOperand(1),
1596 lowerMSASplatImm(Op, 2, DAG));
1601 return lowerMSABitClear(Op, DAG);
1606 return lowerMSABitClearImm(Op, DAG);
1612 EVT VecTy = Op->getValueType(0);
1614 if (Op->getConstantOperandVal(3) >= EltTy.getSizeInBits())
1617 Op->getConstantOperandVal(3) + 1);
1620 Op->getOperand(2), Op->getOperand(1));
1620 Op->getOperand(2), Op->getOperand(1));
1627 EVT VecTy = Op->getValueType(0);
1629 if (Op->getConstantOperandVal(3) >= EltTy.getSizeInBits())
1632 Op->getConstantOperandVal(3) + 1);
1635 Op->getOperand(2), Op->getOperand(1));
1635 Op->getOperand(2), Op->getOperand(1));
1638 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3),
1638 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3),
1639 Op->getOperand(2), Op->getOperand(1));
1639 Op->getOperand(2), Op->getOperand(1));
1641 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0),
1642 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(2),
1642 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(2),
1643 Op->getOperand(1));
1645 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3),
1645 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0), Op->getOperand(3),
1646 Op->getOperand(1), Op->getOperand(2));
1646 Op->getOperand(1), Op->getOperand(2));
1648 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0),
1649 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(1),
1649 lowerMSASplatImm(Op, 3, DAG), Op->getOperand(1),
1650 Op->getOperand(2));
1655 EVT VecTy = Op->getValueType(0);
1658 return DAG.getNode(ISD::XOR, DL, VecTy, Op->getOperand(1),
1660 truncateVecElts(Op, DAG)));
1666 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::XOR, Op->getOperand(2),
1666 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::XOR, Op->getOperand(2),
1672 return DAG.getNode(MipsISD::VALL_NONZERO, DL, Op->getValueType(0),
1673 Op->getOperand(1));
1675 return DAG.getNode(MipsISD::VANY_NONZERO, DL, Op->getValueType(0),
1676 Op->getOperand(1));
1679 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0),
1680 Op->getOperand(1), Op->getOperand(3),
1680 Op->getOperand(1), Op->getOperand(3),
1681 Op->getOperand(2));
1684 return DAG.getNode(ISD::VSELECT, DL, Op->getValueType(0),
1685 Op->getOperand(1), lowerMSASplatImm(Op, 3, DAG),
1685 Op->getOperand(1), lowerMSASplatImm(Op, 3, DAG),
1686 Op->getOperand(2));
1691 EVT VecTy = Op->getValueType(0);
1694 return DAG.getNode(ISD::OR, DL, VecTy, Op->getOperand(1),
1696 truncateVecElts(Op, DAG)));
1702 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::OR, Op->getOperand(2),
1702 return lowerMSABinaryBitImmIntr(Op, DAG, ISD::OR, Op->getOperand(2),
1708 return DAG.getNode(MipsISD::VALL_ZERO, DL, Op->getValueType(0),
1709 Op->getOperand(1));
1711 return DAG.getNode(MipsISD::VANY_ZERO, DL, Op->getValueType(0),
1712 Op->getOperand(1));
1717 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1717 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1718 Op->getOperand(2), ISD::SETEQ);
1723 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1723 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1724 lowerMSASplatImm(Op, 2, DAG, true), ISD::SETEQ);
1729 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1729 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1730 Op->getOperand(2), ISD::SETLE);
1735 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1735 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1736 lowerMSASplatImm(Op, 2, DAG, true), ISD::SETLE);
1741 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1741 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1742 Op->getOperand(2), ISD::SETULE);
1747 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1747 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1748 lowerMSASplatImm(Op, 2, DAG), ISD::SETULE);
1753 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1753 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1754 Op->getOperand(2), ISD::SETLT);
1759 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1759 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1760 lowerMSASplatImm(Op, 2, DAG, true), ISD::SETLT);
1765 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1765 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1766 Op->getOperand(2), ISD::SETULT);
1771 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1771 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1772 lowerMSASplatImm(Op, 2, DAG), ISD::SETULT);
1776 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT);
1780 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_SEXT_ELT);
1784 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(Op),
1785 Op->getValueType(0), Op->getOperand(1),
1785 Op->getValueType(0), Op->getOperand(1),
1786 Op->getOperand(2));
1791 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT);
1795 return lowerMSACopyIntr(Op, DAG, MipsISD::VEXTRACT_ZEXT_ELT);
1802 return DAG.getNode(ISD::EXTRACT_VECTOR_ELT, SDLoc(Op),
1803 Op->getValueType(0), Op->getOperand(1),
1803 Op->getValueType(0), Op->getOperand(1),
1804 Op->getOperand(2));
1810 return DAG.getNode(ISD::SDIV, DL, Op->getValueType(0), Op->getOperand(1),
1810 return DAG.getNode(ISD::SDIV, DL, Op->getValueType(0), Op->getOperand(1),
1811 Op->getOperand(2));
1816 return DAG.getNode(ISD::UDIV, DL, Op->getValueType(0), Op->getOperand(1),
1816 return DAG.getNode(ISD::UDIV, DL, Op->getValueType(0), Op->getOperand(1),
1817 Op->getOperand(2));
1821 return DAG.getNode(ISD::FADD, DL, Op->getValueType(0), Op->getOperand(1),
1821 return DAG.getNode(ISD::FADD, DL, Op->getValueType(0), Op->getOperand(1),
1822 Op->getOperand(2));
1826 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1826 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1827 Op->getOperand(2), ISD::SETOEQ);
1830 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1830 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1831 Op->getOperand(2), ISD::SETOLE);
1834 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1834 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1835 Op->getOperand(2), ISD::SETOLT);
1838 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1838 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1839 Op->getOperand(2), ISD::SETONE);
1842 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1842 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1843 Op->getOperand(2), ISD::SETO);
1846 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1846 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1847 Op->getOperand(2), ISD::SETUEQ);
1850 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1850 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1851 Op->getOperand(2), ISD::SETULE);
1854 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1854 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1855 Op->getOperand(2), ISD::SETULT);
1858 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1858 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1859 Op->getOperand(2), ISD::SETUO);
1862 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1862 return DAG.getSetCC(DL, Op->getValueType(0), Op->getOperand(1),
1863 Op->getOperand(2), ISD::SETUNE);
1867 return DAG.getNode(ISD::FDIV, DL, Op->getValueType(0), Op->getOperand(1),
1867 return DAG.getNode(ISD::FDIV, DL, Op->getValueType(0), Op->getOperand(1),
1868 Op->getOperand(2));
1871 return DAG.getNode(ISD::UINT_TO_FP, DL, Op->getValueType(0),
1872 Op->getOperand(1));
1875 return DAG.getNode(ISD::SINT_TO_FP, DL, Op->getValueType(0),
1876 Op->getOperand(1));
1881 EVT ResTy = Op->getValueType(0);
1883 Op->getOperand(1));
1892 EVT ResTy = Op->getValueType(0);
1894 ISD::FMUL, SDLoc(Op), ResTy, Op->getOperand(1),
1894 ISD::FMUL, SDLoc(Op), ResTy, Op->getOperand(1),
1895 DAG.getNode(ISD::FEXP2, SDLoc(Op), ResTy, Op->getOperand(2)));
1895 DAG.getNode(ISD::FEXP2, SDLoc(Op), ResTy, Op->getOperand(2)));
1899 return DAG.getNode(ISD::FLOG2, DL, Op->getValueType(0), Op->getOperand(1));
1899 return DAG.getNode(ISD::FLOG2, DL, Op->getValueType(0), Op->getOperand(1));
1902 return DAG.getNode(ISD::FMA, SDLoc(Op), Op->getValueType(0),
1902 return DAG.getNode(ISD::FMA, SDLoc(Op), Op->getValueType(0),
1903 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1903 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1903 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1907 return DAG.getNode(ISD::FMUL, DL, Op->getValueType(0), Op->getOperand(1),
1907 return DAG.getNode(ISD::FMUL, DL, Op->getValueType(0), Op->getOperand(1),
1908 Op->getOperand(2));
1912 return DAG.getNode(MipsISD::FMS, SDLoc(Op), Op->getValueType(0),
1912 return DAG.getNode(MipsISD::FMS, SDLoc(Op), Op->getValueType(0),
1913 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1913 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1913 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
1917 return DAG.getNode(ISD::FRINT, DL, Op->getValueType(0), Op->getOperand(1));
1917 return DAG.getNode(ISD::FRINT, DL, Op->getValueType(0), Op->getOperand(1));
1920 return DAG.getNode(ISD::FSQRT, DL, Op->getValueType(0), Op->getOperand(1));
1920 return DAG.getNode(ISD::FSQRT, DL, Op->getValueType(0), Op->getOperand(1));
1924 return DAG.getNode(ISD::FSUB, DL, Op->getValueType(0), Op->getOperand(1),
1924 return DAG.getNode(ISD::FSUB, DL, Op->getValueType(0), Op->getOperand(1),
1925 Op->getOperand(2));
1928 return DAG.getNode(ISD::FP_TO_UINT, DL, Op->getValueType(0),
1929 Op->getOperand(1));
1932 return DAG.getNode(ISD::FP_TO_SINT, DL, Op->getValueType(0),
1933 Op->getOperand(1));
1938 return DAG.getNode(MipsISD::ILVEV, DL, Op->getValueType(0),
1939 Op->getOperand(1), Op->getOperand(2));
1939 Op->getOperand(1), Op->getOperand(2));
1944 return DAG.getNode(MipsISD::ILVL, DL, Op->getValueType(0),
1945 Op->getOperand(1), Op->getOperand(2));
1945 Op->getOperand(1), Op->getOperand(2));
1950 return DAG.getNode(MipsISD::ILVOD, DL, Op->getValueType(0),
1951 Op->getOperand(1), Op->getOperand(2));
1951 Op->getOperand(1), Op->getOperand(2));
1956 return DAG.getNode(MipsISD::ILVR, DL, Op->getValueType(0),
1957 Op->getOperand(1), Op->getOperand(2));
1957 Op->getOperand(1), Op->getOperand(2));
1962 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(Op), Op->getValueType(0),
1962 return DAG.getNode(ISD::INSERT_VECTOR_ELT, SDLoc(Op), Op->getValueType(0),
1963 Op->getOperand(1), Op->getOperand(3), Op->getOperand(2));
1963 Op->getOperand(1), Op->getOperand(3), Op->getOperand(2));
1963 Op->getOperand(1), Op->getOperand(3), Op->getOperand(2));
1977 int64_t Value = cast<ConstantSDNode>(Op->getOperand(2))->getSExtValue();
1980 return DAG.getNode(MipsISD::INSVE, DL, Op->getValueType(0),
1981 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3),
1981 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3),
1981 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3),
1988 return lowerMSASplatImm(Op, 1, DAG, true);
1991 EVT ResTy = Op->getValueType(0);
1992 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1),
1992 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1),
1993 DAG.getNode(ISD::SHL, SDLoc(Op), ResTy,
1994 Op->getOperand(2), Op->getOperand(3)));
1994 Op->getOperand(2), Op->getOperand(3)));
2000 EVT ResTy = Op->getValueType(0);
2001 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1),
2001 return DAG.getNode(ISD::ADD, SDLoc(Op), ResTy, Op->getOperand(1),
2002 DAG.getNode(ISD::MUL, SDLoc(Op), ResTy,
2003 Op->getOperand(2), Op->getOperand(3)));
2003 Op->getOperand(2), Op->getOperand(3)));
2009 return DAG.getNode(ISD::SMAX, DL, Op->getValueType(0),
2010 Op->getOperand(1), Op->getOperand(2));
2010 Op->getOperand(1), Op->getOperand(2));
2015 return DAG.getNode(ISD::UMAX, DL, Op->getValueType(0),
2016 Op->getOperand(1), Op->getOperand(2));
2016 Op->getOperand(1), Op->getOperand(2));
2021 return DAG.getNode(ISD::SMAX, DL, Op->getValueType(0),
2022 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG, true));
2022 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG, true));
2027 return DAG.getNode(ISD::UMAX, DL, Op->getValueType(0),
2028 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2028 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2033 return DAG.getNode(ISD::SMIN, DL, Op->getValueType(0),
2034 Op->getOperand(1), Op->getOperand(2));
2034 Op->getOperand(1), Op->getOperand(2));
2039 return DAG.getNode(ISD::UMIN, DL, Op->getValueType(0),
2040 Op->getOperand(1), Op->getOperand(2));
2040 Op->getOperand(1), Op->getOperand(2));
2045 return DAG.getNode(ISD::SMIN, DL, Op->getValueType(0),
2046 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG, true));
2046 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG, true));
2051 return DAG.getNode(ISD::UMIN, DL, Op->getValueType(0),
2052 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2052 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2057 return DAG.getNode(ISD::SREM, DL, Op->getValueType(0), Op->getOperand(1),
2057 return DAG.getNode(ISD::SREM, DL, Op->getValueType(0), Op->getOperand(1),
2058 Op->getOperand(2));
2063 return DAG.getNode(ISD::UREM, DL, Op->getValueType(0), Op->getOperand(1),
2063 return DAG.getNode(ISD::UREM, DL, Op->getValueType(0), Op->getOperand(1),
2064 Op->getOperand(2));
2069 return DAG.getNode(ISD::MUL, DL, Op->getValueType(0), Op->getOperand(1),
2069 return DAG.getNode(ISD::MUL, DL, Op->getValueType(0), Op->getOperand(1),
2070 Op->getOperand(2));
2075 EVT ResTy = Op->getValueType(0);
2076 return DAG.getNode(ISD::SUB, SDLoc(Op), ResTy, Op->getOperand(1),
2076 return DAG.getNode(ISD::SUB, SDLoc(Op), ResTy, Op->getOperand(1),
2077 DAG.getNode(ISD::MUL, SDLoc(Op), ResTy,
2078 Op->getOperand(2), Op->getOperand(3)));
2078 Op->getOperand(2), Op->getOperand(3)));
2084 return DAG.getNode(ISD::CTLZ, DL, Op->getValueType(0), Op->getOperand(1));
2084 return DAG.getNode(ISD::CTLZ, DL, Op->getValueType(0), Op->getOperand(1));
2086 SDValue Res = DAG.getNode(ISD::OR, DL, Op->getValueType(0),
2087 Op->getOperand(1), Op->getOperand(2));
2087 Op->getOperand(1), Op->getOperand(2));
2091 SDValue Res = DAG.getNode(ISD::OR, DL, Op->getValueType(0),
2092 Op->getOperand(1),
2093 lowerMSASplatImm(Op, 2, DAG));
2097 return DAG.getNode(ISD::OR, DL, Op->getValueType(0), Op->getOperand(1),
2097 return DAG.getNode(ISD::OR, DL, Op->getValueType(0), Op->getOperand(1),
2098 Op->getOperand(2));
2100 return DAG.getNode(ISD::OR, DL, Op->getValueType(0),
2101 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2101 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2106 return DAG.getNode(MipsISD::PCKEV, DL, Op->getValueType(0),
2107 Op->getOperand(1), Op->getOperand(2));
2107 Op->getOperand(1), Op->getOperand(2));
2112 return DAG.getNode(MipsISD::PCKOD, DL, Op->getValueType(0),
2113 Op->getOperand(1), Op->getOperand(2));
2113 Op->getOperand(1), Op->getOperand(2));
2118 return DAG.getNode(ISD::CTPOP, DL, Op->getValueType(0), Op->getOperand(1));
2118 return DAG.getNode(ISD::CTPOP, DL, Op->getValueType(0), Op->getOperand(1));
2140 int64_t Value = cast<ConstantSDNode>(Op->getOperand(2))->getSExtValue();
2148 int64_t Value = cast<ConstantSDNode>(Op->getOperand(2))->getSExtValue();
2151 return DAG.getNode(MipsISD::SHF, DL, Op->getValueType(0),
2152 Op->getOperand(2), Op->getOperand(1));
2152 Op->getOperand(2), Op->getOperand(1));
2167 int64_t Value = cast<ConstantSDNode>(Op->getOperand(3))->getSExtValue();
2176 return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), Op->getOperand(1),
2176 return DAG.getNode(ISD::SHL, DL, Op->getValueType(0), Op->getOperand(1),
2177 truncateVecElts(Op, DAG));
2182 return DAG.getNode(ISD::SHL, DL, Op->getValueType(0),
2183 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2183 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2192 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2193 lowerMSASplatZExt(Op, 2, DAG), Op->getOperand(1),
2193 lowerMSASplatZExt(Op, 2, DAG), Op->getOperand(1),
2194 Op->getOperand(1));
2199 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2200 lowerMSASplatImm(Op, 2, DAG), Op->getOperand(1),
2200 lowerMSASplatImm(Op, 2, DAG), Op->getOperand(1),
2201 Op->getOperand(1));
2206 return DAG.getNode(ISD::SRA, DL, Op->getValueType(0), Op->getOperand(1),
2206 return DAG.getNode(ISD::SRA, DL, Op->getValueType(0), Op->getOperand(1),
2207 truncateVecElts(Op, DAG));
2212 return DAG.getNode(ISD::SRA, DL, Op->getValueType(0),
2213 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2213 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2227 int64_t Value = cast<ConstantSDNode>(Op->getOperand(2))->getSExtValue();
2236 return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), Op->getOperand(1),
2236 return DAG.getNode(ISD::SRL, DL, Op->getValueType(0), Op->getOperand(1),
2237 truncateVecElts(Op, DAG));
2242 return DAG.getNode(ISD::SRL, DL, Op->getValueType(0),
2243 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2243 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2257 int64_t Value = cast<ConstantSDNode>(Op->getOperand(2))->getSExtValue();
2266 return DAG.getNode(ISD::SUB, DL, Op->getValueType(0), Op->getOperand(1),
2266 return DAG.getNode(ISD::SUB, DL, Op->getValueType(0), Op->getOperand(1),
2267 Op->getOperand(2));
2272 return DAG.getNode(ISD::SUB, DL, Op->getValueType(0),
2273 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2273 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2278 return DAG.getNode(MipsISD::VSHF, DL, Op->getValueType(0),
2279 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
2279 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
2279 Op->getOperand(1), Op->getOperand(2), Op->getOperand(3));
2281 return DAG.getNode(ISD::XOR, DL, Op->getValueType(0), Op->getOperand(1),
2281 return DAG.getNode(ISD::XOR, DL, Op->getValueType(0), Op->getOperand(1),
2282 Op->getOperand(2));
2284 return DAG.getNode(ISD::XOR, DL, Op->getValueType(0),
2285 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));
2285 Op->getOperand(1), lowerMSASplatImm(Op, 2, DAG));