reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1735 SDLoc dl(N); 1736 std::tie(LoVT, HiVT) = DAG.GetSplitDestVTs(N->getValueType(0)); 1740 unsigned OpNo = N->isStrictFPOpcode() ? 1 : 0; 1741 EVT InVT = N->getOperand(OpNo).getValueType(); 1743 GetSplitVector(N->getOperand(OpNo), Lo, Hi); 1745 std::tie(Lo, Hi) = DAG.SplitVectorOperand(N, OpNo); 1747 if (N->getOpcode() == ISD::FP_ROUND) { 1748 Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo, N->getOperand(1)); 1748 Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo, N->getOperand(1)); 1749 Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi, N->getOperand(1)); 1749 Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi, N->getOperand(1)); 1750 } else if (N->getOpcode() == ISD::STRICT_FP_ROUND) { 1751 Lo = DAG.getNode(N->getOpcode(), dl, { LoVT, MVT::Other }, 1752 { N->getOperand(0), Lo, N->getOperand(2) }); 1752 { N->getOperand(0), Lo, N->getOperand(2) }); 1753 Hi = DAG.getNode(N->getOpcode(), dl, { HiVT, MVT::Other }, 1754 { N->getOperand(0), Hi, N->getOperand(2) }); 1754 { N->getOperand(0), Hi, N->getOperand(2) }); 1757 ReplaceValueWith(SDValue(N, 1), NewChain); 1758 } else if (N->isStrictFPOpcode()) { 1759 Lo = DAG.getNode(N->getOpcode(), dl, { LoVT, MVT::Other }, 1760 { N->getOperand(0), Lo }); 1761 Hi = DAG.getNode(N->getOpcode(), dl, { HiVT, MVT::Other }, 1762 { N->getOperand(0), Hi }); 1767 ReplaceValueWith(SDValue(N, 1), NewChain); 1769 Lo = DAG.getNode(N->getOpcode(), dl, LoVT, Lo); 1770 Hi = DAG.getNode(N->getOpcode(), dl, HiVT, Hi);