diff options
author | Bob Wilson <bob.wilson@apple.com> | 2009-07-10 23:05:09 +0000 |
---|---|---|
committer | Bob Wilson <bob.wilson@apple.com> | 2009-07-10 23:05:09 +0000 |
commit | 28eff96ee6a22c67baccc36ebd369b7e3aa0cd41 (patch) | |
tree | a64fe35b3924b079478ecc43b25b52133f444189 /lib/VMCore | |
parent | 226b60827eb6483685772bdcf8d0856925f794b6 (diff) | |
download | external_llvm-28eff96ee6a22c67baccc36ebd369b7e3aa0cd41.zip external_llvm-28eff96ee6a22c67baccc36ebd369b7e3aa0cd41.tar.gz external_llvm-28eff96ee6a22c67baccc36ebd369b7e3aa0cd41.tar.bz2 |
Add new vector types for 192-bit, 348-bit and 512-bit sizes.
These are needed to represent ARM Neon struct datatypes containing 2, 3 or 4
separate vectors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75308 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/VMCore')
-rw-r--r-- | lib/VMCore/ValueTypes.cpp | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/lib/VMCore/ValueTypes.cpp b/lib/VMCore/ValueTypes.cpp index c16d277..3c3a293 100644 --- a/lib/VMCore/ValueTypes.cpp +++ b/lib/VMCore/ValueTypes.cpp @@ -110,22 +110,37 @@ std::string MVT::getMVTString() const { case MVT::v4i8: return "v4i8"; case MVT::v8i8: return "v8i8"; case MVT::v16i8: return "v16i8"; + case MVT::v24i8: return "v24i8"; case MVT::v32i8: return "v32i8"; + case MVT::v48i8: return "v48i8"; + case MVT::v64i8: return "v64i8"; case MVT::v2i16: return "v2i16"; case MVT::v4i16: return "v4i16"; case MVT::v8i16: return "v8i16"; + case MVT::v12i16: return "v12i16"; case MVT::v16i16: return "v16i16"; + case MVT::v24i16: return "v24i16"; + case MVT::v32i16: return "v32i16"; case MVT::v2i32: return "v2i32"; case MVT::v3i32: return "v3i32"; case MVT::v4i32: return "v4i32"; + case MVT::v6i32: return "v6i32"; case MVT::v8i32: return "v8i32"; + case MVT::v12i32: return "v12i32"; + case MVT::v16i32: return "v16i32"; case MVT::v1i64: return "v1i64"; case MVT::v2i64: return "v2i64"; + case MVT::v3i64: return "v3i64"; case MVT::v4i64: return "v4i64"; + case MVT::v6i64: return "v6i64"; + case MVT::v8i64: return "v8i64"; case MVT::v2f32: return "v2f32"; case MVT::v3f32: return "v3f32"; case MVT::v4f32: return "v4f32"; + case MVT::v6f32: return "v6f32"; case MVT::v8f32: return "v8f32"; + case MVT::v12f32: return "v12f32"; + case MVT::v16f32: return "v16f32"; case MVT::v2f64: return "v2f64"; case MVT::v4f64: return "v4f64"; } @@ -155,22 +170,37 @@ const Type *MVT::getTypeForMVT(LLVMContext &Context) const { case MVT::v4i8: return Context.getVectorType(Type::Int8Ty, 4); case MVT::v8i8: return Context.getVectorType(Type::Int8Ty, 8); case MVT::v16i8: return Context.getVectorType(Type::Int8Ty, 16); + case MVT::v24i8: return Context.getVectorType(Type::Int8Ty, 24); case MVT::v32i8: return Context.getVectorType(Type::Int8Ty, 32); + case MVT::v48i8: return Context.getVectorType(Type::Int8Ty, 48); + case MVT::v64i8: return Context.getVectorType(Type::Int8Ty, 64); case MVT::v2i16: return Context.getVectorType(Type::Int16Ty, 2); case MVT::v4i16: return Context.getVectorType(Type::Int16Ty, 4); - case MVT::v8i16: return Context.getVectorType(Type::Int16Ty, 16); - case MVT::v16i16: return Context.getVectorType(Type::Int16Ty, 8); + case MVT::v8i16: return Context.getVectorType(Type::Int16Ty, 8); + case MVT::v12i16: return Context.getVectorType(Type::Int16Ty, 12); + case MVT::v16i16: return Context.getVectorType(Type::Int16Ty, 16); + case MVT::v24i16: return Context.getVectorType(Type::Int16Ty, 24); + case MVT::v32i16: return Context.getVectorType(Type::Int16Ty, 32); case MVT::v2i32: return Context.getVectorType(Type::Int32Ty, 2); case MVT::v3i32: return Context.getVectorType(Type::Int32Ty, 3); case MVT::v4i32: return Context.getVectorType(Type::Int32Ty, 4); + case MVT::v6i32: return Context.getVectorType(Type::Int32Ty, 6); case MVT::v8i32: return Context.getVectorType(Type::Int32Ty, 8); + case MVT::v12i32: return Context.getVectorType(Type::Int32Ty, 12); + case MVT::v16i32: return Context.getVectorType(Type::Int32Ty, 16); case MVT::v1i64: return Context.getVectorType(Type::Int64Ty, 1); case MVT::v2i64: return Context.getVectorType(Type::Int64Ty, 2); + case MVT::v3i64: return Context.getVectorType(Type::Int64Ty, 3); case MVT::v4i64: return Context.getVectorType(Type::Int64Ty, 4); + case MVT::v6i64: return Context.getVectorType(Type::Int64Ty, 6); + case MVT::v8i64: return Context.getVectorType(Type::Int64Ty, 8); case MVT::v2f32: return Context.getVectorType(Type::FloatTy, 2); case MVT::v3f32: return Context.getVectorType(Type::FloatTy, 3); case MVT::v4f32: return Context.getVectorType(Type::FloatTy, 4); + case MVT::v6f32: return Context.getVectorType(Type::FloatTy, 6); case MVT::v8f32: return Context.getVectorType(Type::FloatTy, 8); + case MVT::v12f32: return Context.getVectorType(Type::FloatTy, 12); + case MVT::v16f32: return Context.getVectorType(Type::FloatTy, 16); case MVT::v2f64: return Context.getVectorType(Type::DoubleTy, 2); case MVT::v4f64: return Context.getVectorType(Type::DoubleTy, 4); } @@ -201,4 +231,4 @@ MVT MVT::getMVT(const Type *Ty, bool HandleUnknown){ VTy->getNumElements()); } } -}
\ No newline at end of file +} |