From 58513aa1c22a08118734ac799d935ea2910db35a Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Thu, 4 Jan 2007 01:49:26 +0000 Subject: [PATCH] Add a new ConstantPacked::getAllOnesValue method git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32856 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Constants.h | 5 +++++ lib/VMCore/Constants.cpp | 12 ++++++++++++ 2 files changed, 17 insertions(+) diff --git a/include/llvm/Constants.h b/include/llvm/Constants.h index a6050f44a63..e7552e33e08 100644 --- a/include/llvm/Constants.h +++ b/include/llvm/Constants.h @@ -422,6 +422,11 @@ public: return reinterpret_cast(Value::getType()); } + /// @returns the value for an packed integer constant of the given type that + /// has all its bits set to true. + /// @brief Get the all ones value + static ConstantPacked *getAllOnesValue(const PackedType *Ty); + /// isNullValue - Return true if this is the value that would be returned by /// getNullValue. This always returns false because zero arrays are always /// created as ConstantAggregateZero objects. diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 56219e27567..dfdb1f72dcd 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -146,6 +146,18 @@ ConstantIntegral *ConstantIntegral::getAllOnesValue(const Type *Ty) { } } +/// @returns the value for an packed integer constant of the given type that +/// has all its bits set to true. +/// @brief Get the all ones value +ConstantPacked *ConstantPacked::getAllOnesValue(const PackedType *Ty) { + std::vector Elts; + Elts.resize(Ty->getNumElements(), + ConstantIntegral::getAllOnesValue(Ty->getElementType())); + assert(Elts[0] && "Not a packed integer type!"); + return cast(ConstantPacked::get(Elts)); +} + + //===----------------------------------------------------------------------===// // ConstantXXX Classes //===----------------------------------------------------------------------===// -- 2.34.1