Add nodes & dummy matchers for some v{zip,uzp,trn} instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79622 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/ARM/ARMISelDAGToDAG.cpp b/lib/Target/ARM/ARMISelDAGToDAG.cpp
index 3ef15a1..3b394b0 100644
--- a/lib/Target/ARM/ARMISelDAGToDAG.cpp
+++ b/lib/Target/ARM/ARMISelDAGToDAG.cpp
@@ -1415,6 +1415,36 @@
                             N->getOperand(4), N->getOperand(5), Chain };
     return CurDAG->getTargetNode(Opc, dl, MVT::Other, Ops, 8);
   }
+  case ARMISD::VZIP16: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VZIPd16, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
+  case ARMISD::VZIP32: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VZIPq32, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
+  case ARMISD::VUZP16: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VUZPd16, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
+  case ARMISD::VUZP32: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VUZPq32, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
+  case ARMISD::VTRN16: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VTRNd16, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
+  case ARMISD::VTRN32: {
+    EVT VT = N->getValueType(0);
+    return CurDAG->getTargetNode(ARM::VTRNq32, dl, VT, VT,
+                                 N->getOperand(0), N->getOperand(1));
+  }
   }
 
   return SelectCode(Op);