From 08e682ecf486a26ffe202d072b98d748193d1f21 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 19 Jul 2006 00:40:45 +0000 Subject: [PATCH] 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 --- include/llvm/CodeGen/ValueTypes.h | 32 ++--------------------------- lib/VMCore/ValueTypes.cpp | 34 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 30 deletions(-) diff --git a/include/llvm/CodeGen/ValueTypes.h b/include/llvm/CodeGen/ValueTypes.h index e754cd529db..b7a3c9a8e5e 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 81e19645b1f..4cb72b88867 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.