Changes in directory llvm-test/SingleSource/UnitTests/Integer/APInt:
Makefile added (r1.1) arith.cpp added (r1.1) bigint.cpp added (r1.1) --- Log message: Add some tests for the upcoming APInt class. --- Diffs of the changes: (+151 -0) Makefile | 7 +++++ arith.cpp | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ bigint.cpp | 60 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 151 insertions(+) Index: llvm-test/SingleSource/UnitTests/Integer/APInt/Makefile diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/APInt/Makefile:1.1 *** /dev/null Mon Jan 29 17:07:42 2007 --- llvm-test/SingleSource/UnitTests/Integer/APInt/Makefile Mon Jan 29 17:07:32 2007 *************** *** 0 **** --- 1,7 ---- + # SingleSource/UnitTests/Integer/Makefile + LEVEL = ../../../.. + + include $(LEVEL)/SingleSource/Makefile.singlesrc + + LDFLAGS += -L$(LLVM_OBJ_ROOT)/Debug/lib -lLLVMSupport -lLLVMSystem -lstdc++ + CXXFLAGS += -I$(LLVM_SRC_ROOT)/include -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__NO_MATH_INLINES Index: llvm-test/SingleSource/UnitTests/Integer/APInt/arith.cpp diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/APInt/arith.cpp:1.1 *** /dev/null Mon Jan 29 17:07:48 2007 --- llvm-test/SingleSource/UnitTests/Integer/APInt/arith.cpp Mon Jan 29 17:07:32 2007 *************** *** 0 **** --- 1,84 ---- + //===--- arith.c --- Test Cases for Bit Accurate Types --------------------===// + // + // This file was developed by Guoling Han and is distributed under the + // University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // This is a general test for arithmetic operations. + // + //===----------------------------------------------------------------------===// + + #include "llvm/ADT/APInt.h" + #include <stdio.h> + + using namespace llvm; + + APInt x(21,0x1fffff); + + APInt y(21,0x0fffff); + + int my_test() + { + APInt i(10,uint64_t(0)); + APInt j(10); + APInt k(10); + APInt l(10); + APInt result(21); + short temp; + int i_temp; + unsigned int ui_x; + unsigned int ui_y; + j = i; + j -= 1; + temp = (short)j; + printf( "temp = %hd\n", temp); + k = i; + k += 1; + temp = k; + printf( "temp = %hd\n", temp); + k = j * k; + temp = k; + printf( "temp = %hd\n", temp); + j *= 120; + l = j / k; + temp = l; + printf( "temp = %hd\n", temp); + j *= (-176); // after truncation, the value should be -384 + l = j / k; + temp = l; + printf( "temp = %hd\n", temp); + l = 120; + l = (j * l); + l %= 4; + temp = l; + printf( "temp = %hd\n", temp); + l = -217; + l = (j * l); + l = l / (++i); + temp = l; + printf( "temp = %hd\n", temp); + result = ++x; + + i_temp = result; + printf( "i_temp = %x\n", i_temp); + x--; + + result = x + y; + i_temp = result; + printf("i_temp = %x\n", i_temp); + ui_x = x; + ui_y = y; + i_temp = ui_x - ui_y; + printf("i_temp = %x\n", i_temp); + + return 0; + + } + + int main() + { + my_test(); + return 0; + } + Index: llvm-test/SingleSource/UnitTests/Integer/APInt/bigint.cpp diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/APInt/bigint.cpp:1.1 *** /dev/null Mon Jan 29 17:07:48 2007 --- llvm-test/SingleSource/UnitTests/Integer/APInt/bigint.cpp Mon Jan 29 17:07:32 2007 *************** *** 0 **** --- 1,60 ---- + //===--- bigint.c --- Test Cases for Bit Accurate Types -------------------===// + // + // This file was developed by Guoling Han and is distributed under the + // University of Illinois Open Source License. See LICENSE.TXT for details. + // + //===----------------------------------------------------------------------===// + // + // This is a general test for big integer type. + // + //===----------------------------------------------------------------------===// + #include <llvm/ADT/APInt.h> + #include <stdio.h> + + using namespace llvm; + + const APInt bnd(10,1023); + + + APInt x(169, 0xffffffffULL); + APInt y(169, -0xabcdefdeULL); + + int my_test() + { + APInt i(10,uint64_t(0)); + APInt result(169); + APInt l_result(32); + long long rem; + long long rem2; + { + ; + for ( ; ; ) { + bool ssdm_tmp_1 = (i < bnd); + if (!ssdm_tmp_1) break; + if (i % 2 == 0) + x = x + 1; + else + y = y - x; + + ++i; + } + } + result = x*y; + l_result = result % 0x37015; + rem = l_result; + printf("rem = %lld\n", rem); + + l_result = result % -198721; + rem2 = l_result; + printf("rem2 = %lld\n", rem2); + return 0; + } + + int main() + { + my_test(); + return 0; + } + + + _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits