aboutsummaryrefslogtreecommitdiff
path: root/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
diff options
context:
space:
mode:
authordbakunevich <dbakunevich@azul.com>2023-02-20 19:18:03 +0700
committerdbakunevich <dbakunevich@azul.com>2023-02-28 19:05:10 +0700
commit140d6a9f95fbb61a546f6acebca24e6fe3cda894 (patch)
treec4b0118187191eaa6aa834950e84eed58e271973 /llvm/unittests/Analysis/ScalarEvolutionTest.cpp
parent4f9a5447c633083e99fd5cb448116fa8e5b1f976 (diff)
downloadllvm-140d6a9f95fbb61a546f6acebca24e6fe3cda894.zip
llvm-140d6a9f95fbb61a546f6acebca24e6fe3cda894.tar.gz
llvm-140d6a9f95fbb61a546f6acebca24e6fe3cda894.tar.bz2
[SCEV][NFC] Introduce utility function to get power of 2
The new function has been added to SCEV that allows to raise the number 2 to the desired power. Authored-by: Dmitry Bakunevich Differential Revision: https://reviews.llvm.org/D144381
Diffstat (limited to 'llvm/unittests/Analysis/ScalarEvolutionTest.cpp')
-rw-r--r--llvm/unittests/Analysis/ScalarEvolutionTest.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/unittests/Analysis/ScalarEvolutionTest.cpp b/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
index 8756e2c..985d1cb 100644
--- a/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
+++ b/llvm/unittests/Analysis/ScalarEvolutionTest.cpp
@@ -1744,4 +1744,20 @@ TEST_F(ScalarEvolutionsTest, ComputeMaxTripCountFromMultiDemArray) {
});
}
+TEST_F(ScalarEvolutionsTest, CheckGetPowerOfTwo) {
+ Module M("CheckGetPowerOfTwo", Context);
+ FunctionType *FTy = FunctionType::get(Type::getVoidTy(Context), {}, false);
+ Function *F = Function::Create(FTy, Function::ExternalLinkage, "foo", M);
+ BasicBlock *Entry = BasicBlock::Create(Context, "entry", F);
+ IRBuilder<> Builder(Entry);
+ Builder.CreateRetVoid();
+ ScalarEvolution SE = buildSE(*F);
+
+ for (unsigned short i = 0; i < 64; ++i)
+ EXPECT_TRUE(
+ dyn_cast<SCEVConstant>(SE.getPowerOfTwo(Type::getInt64Ty(Context), i))
+ ->getValue()
+ ->equalsInt(1ULL << i));
+}
+
} // end namespace llvm