From cef4b53a3e7b5e7f14760f716949d80055f36510 Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Fri, 15 Jun 2007 06:10:53 +0000 Subject: [PATCH] add a Constant::getAllOnesValue helper function, which works on integers AND vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37586 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Constant.h | 5 +++++ lib/VMCore/Constants.cpp | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/include/llvm/Constant.h b/include/llvm/Constant.h index bfe65a6faa1..d925fdb618e 100644 --- a/include/llvm/Constant.h +++ b/include/llvm/Constant.h @@ -48,6 +48,11 @@ public: /// static Constant *getNullValue(const Type *Ty); + /// Static constructor to get a '-1' constant. This supports integers and + /// vectors. + /// + static Constant *getAllOnesValue(const Type *Ty); + /// isNullValue - Return true if this is the value that would be returned by /// getNullValue. virtual bool isNullValue() const = 0; diff --git a/lib/VMCore/Constants.cpp b/lib/VMCore/Constants.cpp index 55e1539b5c1..e171011159c 100644 --- a/lib/VMCore/Constants.cpp +++ b/lib/VMCore/Constants.cpp @@ -122,6 +122,11 @@ Constant *Constant::getNullValue(const Type *Ty) { } } +Constant *Constant::getAllOnesValue(const Type *Ty) { + if (const IntegerType* ITy = dyn_cast(Ty)) + return ConstantInt::get(APInt::getAllOnesValue(ITy->getBitWidth())); + return ConstantVector::getAllOnesValue(cast(Ty)); +} // Static constructor to create an integral constant with all bits set ConstantInt *ConstantInt::getAllOnesValue(const Type *Ty) {