diff options
author | Daniel Sanders <daniel.sanders@imgtec.com> | 2013-08-28 10:44:47 +0000 |
---|---|---|
committer | Daniel Sanders <daniel.sanders@imgtec.com> | 2013-08-28 10:44:47 +0000 |
commit | abbcf3bd47ad8ffa70f48ebd924f99fff5c22131 (patch) | |
tree | eb840843c5b3d6dd8f3b31e86fbf1bd2f2e49796 /lib/Target/Mips/MipsSEISelDAGToDAG.cpp | |
parent | 477168192c98e1f75a5bc6db3d34a177f327bd34 (diff) | |
download | llvm-abbcf3bd47ad8ffa70f48ebd924f99fff5c22131.tar.gz llvm-abbcf3bd47ad8ffa70f48ebd924f99fff5c22131.tar.bz2 llvm-abbcf3bd47ad8ffa70f48ebd924f99fff5c22131.tar.xz |
[mips][msa] Added move.v
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189471 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Mips/MipsSEISelDAGToDAG.cpp')
-rw-r--r-- | lib/Target/Mips/MipsSEISelDAGToDAG.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/lib/Target/Mips/MipsSEISelDAGToDAG.cpp b/lib/Target/Mips/MipsSEISelDAGToDAG.cpp index 221aedacd3..27fcaa3391 100644 --- a/lib/Target/Mips/MipsSEISelDAGToDAG.cpp +++ b/lib/Target/Mips/MipsSEISelDAGToDAG.cpp @@ -463,6 +463,22 @@ std::pair<bool, SDNode*> MipsSEDAGToDAGISel::selectNode(SDNode *Node) { break; } + case ISD::INTRINSIC_WO_CHAIN: { + switch (cast<ConstantSDNode>(Node->getOperand(0))->getZExtValue()) { + default: + break; + + case Intrinsic::mips_move_v: + // Like an assignment but will always produce a move.v even if + // unnecessary. + return std::make_pair(true, + CurDAG->getMachineNode(Mips::MOVE_V, DL, + Node->getValueType(0), + Node->getOperand(1))); + } + break; + } + case ISD::INTRINSIC_VOID: { switch (cast<ConstantSDNode>(Node->getOperand(1))->getZExtValue()) { default: |