summaryrefslogtreecommitdiffstats
path: root/include/llvm/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-03-19 00:52:25 +0000
committerChris Lattner <sabre@nondot.org>2006-03-19 00:52:25 +0000
commit22232f659bec0f4c23ec46445d3bd3c4deb68686 (patch)
treea8aa8b92bdfc578df0ef478a9499f0667c8862dd /include/llvm/CodeGen
parent23d564c11fbe628dbebd6d8f09d7d07fa862b719 (diff)
downloadexternal_llvm-22232f659bec0f4c23ec46445d3bd3c4deb68686.zip
external_llvm-22232f659bec0f4c23ec46445d3bd3c4deb68686.tar.gz
external_llvm-22232f659bec0f4c23ec46445d3bd3c4deb68686.tar.bz2
Rename ConstantVec -> BUILD_VECTOR and VConstant -> VBUILD_VECTOR. Allow
*BUILD_VECTOR to take variable inputs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26846 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen')
-rw-r--r--include/llvm/CodeGen/SelectionDAGNodes.h47
1 files changed, 23 insertions, 24 deletions
diff --git a/include/llvm/CodeGen/SelectionDAGNodes.h b/include/llvm/CodeGen/SelectionDAGNodes.h
index 81bdcc8..648e9dd 100644
--- a/include/llvm/CodeGen/SelectionDAGNodes.h
+++ b/include/llvm/CodeGen/SelectionDAGNodes.h
@@ -67,15 +67,10 @@ namespace ISD {
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 @@ namespace ISD {
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 @@ namespace ISD {
// 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,
-
- // 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,
+ /// 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,
+
/// 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,