summaryrefslogtreecommitdiff
path: root/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
diff options
context:
space:
mode:
authorDaniel Sanders <daniel.sanders@imgtec.com>2013-08-28 10:44:47 +0000
committerDaniel Sanders <daniel.sanders@imgtec.com>2013-08-28 10:44:47 +0000
commitabbcf3bd47ad8ffa70f48ebd924f99fff5c22131 (patch)
treeeb840843c5b3d6dd8f3b31e86fbf1bd2f2e49796 /lib/Target/Mips/MipsSEISelDAGToDAG.cpp
parent477168192c98e1f75a5bc6db3d34a177f327bd34 (diff)
downloadllvm-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.cpp16
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: