From 0eca9ed813c0088d97e0e19127520e4f3bd7d75a Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Tue, 28 Aug 2001 23:28:10 +0000 Subject: [PATCH] Driver to test IsPowerOf2. Could be extended for other library routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@408 91177308-0d34-0410-b5e6-96231b3b80d8 --- tools/tests/testPow2.cpp | 46 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 tools/tests/testPow2.cpp diff --git a/tools/tests/testPow2.cpp b/tools/tests/testPow2.cpp new file mode 100644 index 00000000000..25f0ecd3a61 --- /dev/null +++ b/tools/tests/testPow2.cpp @@ -0,0 +1,46 @@ +/* -*-c++-*- */ + +#include +#include +#include "/home/vadve/vadve/Research/DynOpt/LLVM/llvm/include/llvm/Support/MathExtras.h" + +inline void +testPow(int C, bool isPow) +{ + unsigned pow = 0; + bool testIsPow = IsPowerOf2(C, pow); + if (isPow != testIsPow) + printf("ERROR: IsPowerOf2() says \t%d %s a power of 2 = %d\n", + C, (isPow? "IS" : "IS NOT"), pow); + +#undef PRINT_CORRECT_RESULTS +#ifdef PRINT_CORRECT_RESULTS + else + printf("CORRECT: IsPowerOf2() says \t%d %s a power of 2 = %d\n", + C, (isPow? "IS" : "IS NOT"), pow); +#endif PRINT_CORRECT_RESULTS +} + +int +main(int argc, char** argv) +{ + unsigned L = (argc > 1)? atoi(argv[1]) : 16; + unsigned C = 1; + + testPow(0, false); + + for (unsigned i = 1; i < L; i++, C = C << 1) + { + testPow(C, true); + testPow(-C, true); + for (unsigned j = C+1; j < (C << 1); j++) + { + testPow(j, false); + testPow(-j, false); + } + } + + return 0; +} + +