Changes in directory llvm-test/SingleSource/UnitTests/Integer:
negConst.c added (r1.1) negConst.reference_output added (r1.1) --- Log message: A test of negative literal constant values with various bit sizes. --- Diffs of the changes: (+69 -0) negConst.c | 61 ++++++++++++++++++++++++++++++++++++++++++++++ negConst.reference_output | 8 ++++++ 2 files changed, 69 insertions(+) Index: llvm-test/SingleSource/UnitTests/Integer/negConst.c diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/negConst.c:1.1 *** /dev/null Mon May 14 02:30:47 2007 --- llvm-test/SingleSource/UnitTests/Integer/negConst.c Mon May 14 02:30:37 2007 *************** *** 0 **** --- 1,61 ---- + + #include "bits.h" + + + void test1(int69 x) + { + int63 y = -120; + int63 y2 = part_select(y, 0, 31); + int32 z = 0; + int32 z2 = 0; + int i = 0; + + // Compute the part_select manually using bit_select + for(i = 31; i >= 0; --i) { + z <<= 1; + if (bit_select(y, i)) + z |= 1; + } + + // Compute the part_select + z2 = y2; + + printf("Value1: %x = ", (int)y); + printBits(y); + printf("\n"); + printf("Value2: %x = ", (int)y2); + printBits(y2); + printf("\n"); + printf("Bits : %x = ", z); + printBits(z); + printf("\nPart : %x = ", z2); + printBits(z2); + printf("\n"); + + if (z != z2) + printf("Error: %x, %x\n", z, z2); + else + printf("OK.\n"); + } + + int main(int argc, char ** argv) + { + int69 n; + if (argc > 1) { + n = bitsFromString("9876543210000000", 69); + } + else + n = -1; + int54 n2 = n; + long long unsigned int U = n; + long long signed int S = n2; + + printf("Unsigned: %llu (%llx) = ", U, U); + printBits(n); + printf("\n"); + printf(" Signed: %lld (%llx) = ", S, S); + printBits(n2); + printf("\n"); + test1(n); + return 0; + } Index: llvm-test/SingleSource/UnitTests/Integer/negConst.reference_output diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/negConst.reference_output:1.1 *** /dev/null Mon May 14 02:30:55 2007 --- llvm-test/SingleSource/UnitTests/Integer/negConst.reference_output Mon May 14 02:30:37 2007 *************** *** 0 **** --- 1,8 ---- + Unsigned: 9876543210000000 (2316a9e9a40e80) = 000000000000000100011000101101010100111101001101001000000111010000000 + Signed: -8137855299481984 (ffe316a9e9a40e80) = 100011000101101010100111101001101001000000111010000000 + Value1: ffffff88 = 111111111111111111111111111111111111111111111111111111110001000 + Value2: ffffff88 = 000000000000000000000000000000011111111111111111111111110001000 + Bits : ffffff88 = 11111111111111111111111110001000 + Part : ffffff88 = 11111111111111111111111110001000 + OK. + exit 0 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits