add a node
authorChris Lattner <sabre@nondot.org>
Sun, 19 Mar 2006 23:42:51 +0000 (23:42 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 19 Mar 2006 23:42:51 +0000 (23:42 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26879 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/CodeGen/SelectionDAGNodes.h

index e52ac2c8bd0d85961985d6dbf18391e1cf0b903c..b3a83ce64be2862e0e72749fa194a733fb1f582c 100644 (file)
@@ -157,6 +157,15 @@ namespace ISD {
     /// type) with the element at IDX replaced with VAL.
     INSERT_VECTOR_ELT,
     
+    /// VECTOR_SHUFFLE(VEC1, VEC2, SHUFFLEVEC) - Returns a vector, of the same
+    /// type as VEC1/VEC2.  SHUFFLEVEC is a BUILD_VECTOR of constant int values
+    /// (regardless of whether its datatype is legal or not) that indicate
+    /// which value each result element will get.  The elements of VEC1/VEC2 are
+    /// enumerated in order.  This is quite similar to the Altivec 'vperm'
+    /// instruction, except that the indices must be constants and are in terms
+    /// of the element size of VEC1/VEC2, not in terms of bytes.
+    VECTOR_SHUFFLE,
+    
     /// BINOP(LHS, RHS,  COUNT,TYPE)
     /// Simple abstract vector operators.  Unlike the integer and floating point
     /// binary operators, these nodes also take two additional operands: