Changes in directory llvm-test/SingleSource/UnitTests/Integer:
reductions.c added (r1.1) reductions.reference_output added (r1.1) --- Log message: Add test cases for bitwise reduction operators. --- Diffs of the changes: (+68 -0) reductions.c | 59 ++++++++++++++++++++++++++++++++++++++++++++ reductions.reference_output | 9 ++++++ 2 files changed, 68 insertions(+) Index: llvm-test/SingleSource/UnitTests/Integer/reductions.c diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/reductions.c:1.1 *** /dev/null Mon May 14 13:04:18 2007 --- llvm-test/SingleSource/UnitTests/Integer/reductions.c Mon May 14 13:04:08 2007 *************** *** 0 **** --- 1,59 ---- + #include "bits.h" + #include <stdio.h> + + int test_reduce_or(uint68 x) + { + unsigned result = reduce(or, x) != 0; + printf("reduce(or, x) = %d\n", result); + return result; + } + + int test_reduce_nor(uint68 x) + { + unsigned result = reduce(nor, x) != 0; + printf("reduce(nor, x) = %d\n", result); + return result; + } + + int test_reduce_xor(uint68 x) + { + unsigned result = reduce(xor, x) != 0; + printf("reduce(xor, x) = %d\n", result); + return result; + } + + int test_reduce_nxor(uint68 x) + { + unsigned result = reduce(nxor, x) != 0; + printf("reduce(nxor, x) = %d\n", result); + return result; + } + + int test_reduce_and(uint68 x) + { + unsigned result = reduce(and, x) != 0; + printf("reduce(and, x) = %d\n", result); + return result; + } + + int test_reduce_nand(uint68 x) + { + unsigned result = reduce(nand, x) != 0; + printf("reduce(nand, x) = %d\n", result); + return result; + } + + + int main(int argc, char** argv) { + uint68 x = 0xF0F0F0F0F0F0F0F0ULL; + int result = 0; + printf("x = "); + printBits(x); + printf("\n"); + result = + test_reduce_or(x) + test_reduce_nor(x) + + test_reduce_xor(x) + test_reduce_nxor(x) + + test_reduce_and(x) + test_reduce_nand(x); + printf("Sum of reductions of x = %d\n", result); + return result; + } Index: llvm-test/SingleSource/UnitTests/Integer/reductions.reference_output diff -c /dev/null llvm-test/SingleSource/UnitTests/Integer/reductions.reference_output:1.1 *** /dev/null Mon May 14 13:04:29 2007 --- llvm-test/SingleSource/UnitTests/Integer/reductions.reference_output Mon May 14 13:04:08 2007 *************** *** 0 **** --- 1,9 ---- + x = 00001111000011110000111100001111000011110000111100001111000011110000 + reduce(or, x) = 1 + reduce(nor, x) = 0 + reduce(xor, x) = 0 + reduce(nxor, x) = 1 + reduce(and, x) = 0 + reduce(nand, x) = 1 + Sum of reductions of x = 3 + exit 3 _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits