diff options
author | Chris Lattner <sabre@nondot.org> | 2006-03-19 00:52:25 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2006-03-19 00:52:25 +0000 |
commit | 22232f659bec0f4c23ec46445d3bd3c4deb68686 (patch) | |
tree | a8aa8b92bdfc578df0ef478a9499f0667c8862dd /include/llvm/CodeGen | |
parent | 23d564c11fbe628dbebd6d8f09d7d07fa862b719 (diff) | |
download | external_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.h | 47 |
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, |