aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2006-07-19 00:40:45 +0000
committerChris Lattner <sabre@nondot.org>2006-07-19 00:40:45 +0000
commit08e682ecf486a26ffe202d072b98d748193d1f21 (patch)
tree641eb9b8c972e528301325a68d1ccb1e36a44502
parent1693e489e6f8935ca9b42ba7c06e684df6395fee (diff)
Move MVT::getVectorType out of line, it is large and shouldn't be inlined.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@29195 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/CodeGen/ValueTypes.h32
-rw-r--r--lib/VMCore/ValueTypes.cpp34
2 files changed, 36 insertions, 30 deletions
diff --git a/include/llvm/CodeGen/ValueTypes.h b/include/llvm/CodeGen/ValueTypes.h
index e754cd529d..b7a3c9a8e5 100644
--- a/include/llvm/CodeGen/ValueTypes.h
+++ b/include/llvm/CodeGen/ValueTypes.h
@@ -120,36 +120,8 @@ namespace MVT { // MVT = Machine Value Types
/// NumElements in length, where each element is of type VT. If there is no
/// ValueType that represents this vector, a ValueType of Other is returned.
///
- static inline ValueType getVectorType(ValueType VT, unsigned NumElements) {
- switch (VT) {
- default:
- break;
- case MVT::i8:
- if (NumElements == 8) return MVT::v8i8;
- if (NumElements == 16) return MVT::v16i8;
- break;
- case MVT::i16:
- if (NumElements == 4) return MVT::v4i16;
- if (NumElements == 8) return MVT::v8i16;
- break;
- case MVT::i32:
- if (NumElements == 2) return MVT::v2i32;
- if (NumElements == 4) return MVT::v4i32;
- break;
- case MVT::i64:
- if (NumElements == 2) return MVT::v2i64;
- break;
- case MVT::f32:
- if (NumElements == 2) return MVT::v2f32;
- if (NumElements == 4) return MVT::v4f32;
- break;
- case MVT::f64:
- if (NumElements == 2) return MVT::v2f64;
- break;
- }
- return MVT::Other;
- }
-
+ ValueType getVectorType(ValueType VT, unsigned NumElements);
+
/// MVT::getVectorBaseType - Given a packed vector type, return the type of
/// each element.
static inline ValueType getVectorBaseType(ValueType VT) {
diff --git a/lib/VMCore/ValueTypes.cpp b/lib/VMCore/ValueTypes.cpp
index 81e19645b1..4cb72b8886 100644
--- a/lib/VMCore/ValueTypes.cpp
+++ b/lib/VMCore/ValueTypes.cpp
@@ -46,6 +46,40 @@ const char *MVT::getValueTypeString(MVT::ValueType VT) {
}
}
+/// MVT::getVectorType - Returns the ValueType that represents a vector
+/// NumElements in length, where each element is of type VT. If there is no
+/// ValueType that represents this vector, a ValueType of Other is returned.
+///
+MVT::ValueType MVT::getVectorType(ValueType VT, unsigned NumElements) {
+ switch (VT) {
+ default:
+ break;
+ case MVT::i8:
+ if (NumElements == 8) return MVT::v8i8;
+ if (NumElements == 16) return MVT::v16i8;
+ break;
+ case MVT::i16:
+ if (NumElements == 4) return MVT::v4i16;
+ if (NumElements == 8) return MVT::v8i16;
+ break;
+ case MVT::i32:
+ if (NumElements == 2) return MVT::v2i32;
+ if (NumElements == 4) return MVT::v4i32;
+ break;
+ case MVT::i64:
+ if (NumElements == 2) return MVT::v2i64;
+ break;
+ case MVT::f32:
+ if (NumElements == 2) return MVT::v2f32;
+ if (NumElements == 4) return MVT::v4f32;
+ break;
+ case MVT::f64:
+ if (NumElements == 2) return MVT::v2f64;
+ break;
+ }
+ return MVT::Other;
+}
+
/// MVT::getTypeForValueType - This method returns an LLVM type corresponding
/// to the specified ValueType. For integer types, this returns an unsigned
/// type. Note that this will abort for types that cannot be represented.