aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/llvm/Type.h5
-rw-r--r--lib/VMCore/Type.cpp11
2 files changed, 16 insertions, 0 deletions
diff --git a/include/llvm/Type.h b/include/llvm/Type.h
index bd264a0..72e70b4 100644
--- a/include/llvm/Type.h
+++ b/include/llvm/Type.h
@@ -180,6 +180,11 @@ public:
///
bool isInteger() const { return ID == IntegerTyID; }
+ /// isIntOrIntVector - Return true if this is an integer type or a vector of
+ /// integer types.
+ ///
+ bool isIntOrIntVector() const;
+
/// isFloatingPoint - Return true if this is one of the two floating point
/// types
bool isFloatingPoint() const { return ID == FloatTyID || ID == DoubleTyID ||
diff --git a/lib/VMCore/Type.cpp b/lib/VMCore/Type.cpp
index 3f8643e..3e085f4 100644
--- a/lib/VMCore/Type.cpp
+++ b/lib/VMCore/Type.cpp
@@ -126,6 +126,17 @@ const Type *Type::getVAArgsPromotedType() const {
return this;
}
+/// isIntOrIntVector - Return true if this is an integer type or a vector of
+/// integer types.
+///
+bool Type::isIntOrIntVector() const {
+ if (isInteger())
+ return true;
+ if (ID != Type::VectorTyID) return false;
+
+ return cast<VectorType>(this)->getElementType()->isInteger();
+}
+
/// isFPOrFPVector - Return true if this is a FP type or a vector of FP types.
///
bool Type::isFPOrFPVector() const {