diff options
author | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-01 18:01:28 +0000 |
---|---|---|
committer | Matt Arsenault <Matthew.Arsenault@amd.com> | 2016-03-01 18:01:28 +0000 |
commit | e55c1658ea4b2945942ab3d3646258101c75e2e2 (patch) | |
tree | 7b92f160e96b1e64dbf4f3be4ca60f28a3a99919 | |
parent | 24f035af32effb159cc001feff198e070d2d8431 (diff) | |
download | bcm5719-llvm-e55c1658ea4b2945942ab3d3646258101c75e2e2.tar.gz bcm5719-llvm-e55c1658ea4b2945942ab3d3646258101c75e2e2.zip |
Add isScalarInteger helper to EVT/MVT
llvm-svn: 262357
-rw-r--r-- | llvm/include/llvm/CodeGen/MachineValueType.h | 7 | ||||
-rw-r--r-- | llvm/include/llvm/CodeGen/ValueTypes.h | 6 | ||||
-rw-r--r-- | llvm/lib/IR/ValueTypes.cpp | 5 |
3 files changed, 18 insertions, 0 deletions
diff --git a/llvm/include/llvm/CodeGen/MachineValueType.h b/llvm/include/llvm/CodeGen/MachineValueType.h index 04d6ee3be53..8cfd5fe2b60 100644 --- a/llvm/include/llvm/CodeGen/MachineValueType.h +++ b/llvm/include/llvm/CodeGen/MachineValueType.h @@ -210,6 +210,13 @@ class MVT { SimpleTy <= MVT::LAST_INTEGER_VECTOR_VALUETYPE)); } + /// isScalarInteger - Return true if this is an integer, not including + /// vectors. + bool isScalarInteger() const { + return (SimpleTy >= MVT::FIRST_INTEGER_VALUETYPE && + SimpleTy <= MVT::LAST_INTEGER_VALUETYPE); + } + /// isVector - Return true if this is a vector value type. bool isVector() const { return (SimpleTy >= MVT::FIRST_VECTOR_VALUETYPE && diff --git a/llvm/include/llvm/CodeGen/ValueTypes.h b/llvm/include/llvm/CodeGen/ValueTypes.h index 929eb88a039..b1400367971 100644 --- a/llvm/include/llvm/CodeGen/ValueTypes.h +++ b/llvm/include/llvm/CodeGen/ValueTypes.h @@ -124,6 +124,11 @@ namespace llvm { return isSimple() ? V.isInteger() : isExtendedInteger(); } + /// isScalarInteger - Return true if this is an integer, but not a vector. + bool isScalarInteger() const { + return isSimple() ? V.isScalarInteger() : isExtendedScalarInteger(); + } + /// isVector - Return true if this is a vector value type. bool isVector() const { return isSimple() ? V.isVector() : isExtendedVector(); @@ -367,6 +372,7 @@ namespace llvm { unsigned NumElements); bool isExtendedFloatingPoint() const LLVM_READONLY; bool isExtendedInteger() const LLVM_READONLY; + bool isExtendedScalarInteger() const LLVM_READONLY; bool isExtendedVector() const LLVM_READONLY; bool isExtended16BitVector() const LLVM_READONLY; bool isExtended32BitVector() const LLVM_READONLY; diff --git a/llvm/lib/IR/ValueTypes.cpp b/llvm/lib/IR/ValueTypes.cpp index f2932302af2..ff1e431c2e9 100644 --- a/llvm/lib/IR/ValueTypes.cpp +++ b/llvm/lib/IR/ValueTypes.cpp @@ -55,6 +55,11 @@ bool EVT::isExtendedInteger() const { return LLVMTy->isIntOrIntVectorTy(); } +bool EVT::isExtendedScalarInteger() const { + assert(isExtended() && "Type is not extended!"); + return LLVMTy->isIntegerTy(); +} + bool EVT::isExtendedVector() const { assert(isExtended() && "Type is not extended!"); return LLVMTy->isVectorTy(); |