llvm-6502/tools/tests/testPow2.cpp
Chris Lattner a105022a78 Uhm... that was really bad
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@493 91177308-0d34-0410-b5e6-96231b3b80d8
2001-09-07 21:26:51 +00:00

47 lines
884 B
C++

/* -*-c++-*- */
#include <stdio.h>
#include <stdlib.h>
#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;
}