aboutsummaryrefslogtreecommitdiffstats
path: root/lib/VMCore/ValueTypes.cpp
diff options
context:
space:
mode:
authorBob Wilson <bob.wilson@apple.com>2009-07-10 23:05:09 +0000
committerBob Wilson <bob.wilson@apple.com>2009-07-10 23:05:09 +0000
commit28eff96ee6a22c67baccc36ebd369b7e3aa0cd41 (patch)
treea64fe35b3924b079478ecc43b25b52133f444189 /lib/VMCore/ValueTypes.cpp
parent226b60827eb6483685772bdcf8d0856925f794b6 (diff)
downloadexternal_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/ValueTypes.cpp')
-rw-r--r--lib/VMCore/ValueTypes.cpp36
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
+}