[llvm-commits] CVS: llvm/include/llvm/CodeGen/SelectionDAGNodes.h

Chris Lattner lattner at cs.uiuc.edu
Sat Mar 18 16:52:37 PST 2006



Changes in directory llvm/include/llvm/CodeGen:

SelectionDAGNodes.h updated: 1.113 -> 1.114
---
Log message:

Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR.  Allow
*BUILD_VECTOR to take variable inputs.


---
Diffs of the changes:  (+23 -24)

 SelectionDAGNodes.h |   47 +++++++++++++++++++++++------------------------
 1 files changed, 23 insertions(+), 24 deletions(-)


Index: llvm/include/llvm/CodeGen/SelectionDAGNodes.h
diff -u llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.113 llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.114
--- llvm/include/llvm/CodeGen/SelectionDAGNodes.h:1.113	Fri Mar 17 19:43:28 2006
+++ llvm/include/llvm/CodeGen/SelectionDAGNodes.h	Sat Mar 18 18:52:25 2006
@@ -67,15 +67,10 @@
     Constant, ConstantFP,
     GlobalAddress, FrameIndex, ConstantPool, ExternalSymbol,
 
-    // ConstantVec works like Constant or ConstantFP, except that it is not a
-    // leaf node.  All operands are either Constant or ConstantFP nodes.
-    ConstantVec,
-    
     // TargetConstant* - Like Constant*, but the DAG does not do any folding or
     // simplification of the constant.
     TargetConstant,
     TargetConstantFP,
-    TargetConstantVec, 
     
     // TargetGlobalAddress - Like GlobalAddress, but the DAG does no folding or
     // anything else with this node, and this is valid in the target-specific
@@ -85,12 +80,6 @@
     TargetConstantPool,
     TargetExternalSymbol,
 
-    // Abstract version of ConstantVec with abstract Vector type. The first N-2
-    // operands are the constants to initialize the vector, the N-2nd operand
-    // is a constant element count, and that last operand is the value type
-    // indicating the type of the elements.
-    VConstant,
-
     // CopyToReg - This node has three operands: a chain, a register number to
     // set to this value, and a value.  
     CopyToReg,
@@ -148,26 +137,36 @@
     // FCOPYSIGN(f32, f64) is allowed.
     FCOPYSIGN,
 
-    /// INSERT_VECTOR_ELT(VECTOR, VAL, IDX) - Returns VECTOR (a legal packed
-    /// type) with the element at IDX replaced with VAL.
-    INSERT_VECTOR_ELT,
+    /// VBUILD_VECTOR(ELT1, ELT2, ELT3, ELT4,...,  COUNT,TYPE) - Return a vector
+    /// with the specified, possibly variable, elements.  The number of elements
+    /// is required to be a power of two.
+    VBUILD_VECTOR,
+
+    /// BUILD_VECTOR(ELT1, ELT2, ELT3, ELT4,...) - Return a vector
+    /// with the specified, possibly variable, elements.  The number of elements
+    /// is required to be a power of two.
+    BUILD_VECTOR,
     
-    // BINOP(LHS, RHS,  COUNT,TYPE)
-    // Simple abstract vector operators.  Unlike the integer and floating point
-    // binary operators, these nodes also take two additional operands:
-    // a constant element count, and a value type node indicating the type of
-    // the elements.  The order is count, type, op0, op1.  All vector opcodes,
-    // including VLOAD and VConstant must currently have count and type as
-    // their last two operands.
-    VADD, VSUB, VMUL, VSDIV, VUDIV,
-    VAND, VOR, VXOR,
-
     /// VINSERT_VECTOR_ELT(VECTOR, VAL, IDX,  COUNT,TYPE) - Given a vector
     /// VECTOR, an element ELEMENT, and a (potentially variable) index IDX,
     /// return an vector with the specified element of VECTOR replaced with VAL.
     /// COUNT and TYPE specify the type of vector, as is standard for V* nodes.
     VINSERT_VECTOR_ELT,
     
+    /// INSERT_VECTOR_ELT(VECTOR, VAL, IDX) - Returns VECTOR (a legal packed
+    /// type) with the element at IDX replaced with VAL.
+    INSERT_VECTOR_ELT,
+    
+    /// BINOP(LHS, RHS,  COUNT,TYPE)
+    /// Simple abstract vector operators.  Unlike the integer and floating point
+    /// binary operators, these nodes also take two additional operands:
+    /// a constant element count, and a value type node indicating the type of
+    /// the elements.  The order is count, type, op0, op1.  All vector opcodes,
+    /// including VLOAD and VConstant must currently have count and type as
+    /// their last two operands.
+    VADD, VSUB, VMUL, VSDIV, VUDIV,
+    VAND, VOR, VXOR,
+
     // MULHU/MULHS - Multiply high - Multiply two integers of type iN, producing
     // an unsigned/signed value of type i[2*n], then return the top part.
     MULHU, MULHS,






More information about the llvm-commits mailing list