mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-29 06:30:39 +00:00
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
This commit is contained in:
parent
5b7d0bf988
commit
0eca9ed813
46
tools/tests/testPow2.cpp
Normal file
46
tools/tests/testPow2.cpp
Normal file
@ -0,0 +1,46 @@
|
||||
/* -*-c++-*- */
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user