OLD | NEW |
1 //===- subzero/crosstest/test_bitmanip.cpp - Implementation for tests. ----===// | 1 //===- subzero/crosstest/test_bitmanip.cpp - Implementation for tests. ----===// |
2 // | 2 // |
3 // The Subzero Code Generator | 3 // The Subzero Code Generator |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This aims to test that all the bit manipulation intrinsics work, via | 10 // This aims to test that all the bit manipulation intrinsics work, via |
(...skipping 22 matching lines...) Expand all Loading... |
33 return sum; \ | 33 return sum; \ |
34 } \ | 34 } \ |
35 type test_const_##inst(type ignored) { \ | 35 type test_const_##inst(type ignored) { \ |
36 return my_##inst(static_cast<type>(0x12340)); \ | 36 return my_##inst(static_cast<type>(0x12340)); \ |
37 } | 37 } |
38 | 38 |
39 FOR_ALL_BMI_OP_TYPES(X) | 39 FOR_ALL_BMI_OP_TYPES(X) |
40 #undef X | 40 #undef X |
41 | 41 |
42 #define X(type, builtin_name) \ | 42 #define X(type, builtin_name) \ |
43 type test_bswap(type a) { return builtin_name(a); } | 43 type test_bswap(type a) { return builtin_name(a); } \ |
| 44 type test_bswap_alloca(type a) { \ |
| 45 const size_t buf_size = 8; \ |
| 46 type buf[buf_size]; \ |
| 47 for (size_t i = 0; i < buf_size; ++i) { \ |
| 48 buf[i] = builtin_name(a * i) + builtin_name(a + i); \ |
| 49 } \ |
| 50 type sum = 0; \ |
| 51 for (size_t i = 0; i < buf_size; ++i) { \ |
| 52 sum += buf[i]; \ |
| 53 } \ |
| 54 return sum; \ |
| 55 } |
44 BSWAP_TABLE | 56 BSWAP_TABLE |
45 #undef X | 57 #undef X |
OLD | NEW |