Mercurial > vec
comparison test/test_arith.h @ 28:c6c99ab1088a
*: add min/max functions and a big big refactor (again)
agh, this time I added a few more implementations (and generally
made the code just a little faster...)
| author | Paper <paper@tflc.us> |
|---|---|
| date | Thu, 24 Apr 2025 00:54:02 -0400 |
| parents | 92156fe32755 |
| children | bf6ad516f1e6 |
comparison
equal
deleted
inserted
replaced
| 27:d00b95f95dd1 | 28:c6c99ab1088a |
|---|---|
| 63 CREATE_TEST(sign, psign, csign, bits, size, or, orig_a[i] | orig_b[i]) \ | 63 CREATE_TEST(sign, psign, csign, bits, size, or, orig_a[i] | orig_b[i]) \ |
| 64 CREATE_TEST(sign, psign, csign, bits, size, xor, orig_a[i] ^ orig_b[i]) \ | 64 CREATE_TEST(sign, psign, csign, bits, size, xor, orig_a[i] ^ orig_b[i]) \ |
| 65 CREATE_TEST(sign, psign, csign, bits, size, avg, vec_##sign##avg(orig_a[i], orig_b[i])) \ | 65 CREATE_TEST(sign, psign, csign, bits, size, avg, vec_##sign##avg(orig_a[i], orig_b[i])) \ |
| 66 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, rshift, vec_##sign##rshift(orig_a[i], orig_b[i])) \ | 66 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, rshift, vec_##sign##rshift(orig_a[i], orig_b[i])) \ |
| 67 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lshift, vec_##sign##lshift(orig_a[i], orig_b[i])) \ | 67 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lshift, vec_##sign##lshift(orig_a[i], orig_b[i])) \ |
| 68 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lrshift, vec_lrshift((vec_uint##bits)orig_a[i], orig_b[i])) | 68 CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lrshift, vec_lrshift((vec_uint##bits)orig_a[i], orig_b[i])) \ |
| 69 CREATE_TEST(sign, psign, csign, bits, size, min, (orig_a[i] < orig_b[i]) ? (orig_a[i]) : (orig_b[i])) \ | |
| 70 CREATE_TEST(sign, psign, csign, bits, size, max, (orig_a[i] > orig_b[i]) ? (orig_a[i]) : (orig_b[i])) | |
| 69 | 71 |
| 70 #define CREATE_TESTS(bits, size) \ | 72 #define CREATE_TESTS(bits, size) \ |
| 71 CREATE_TESTS_SIGN(, d, , bits, size) \ | 73 CREATE_TESTS_SIGN(, d, , bits, size) \ |
| 72 CREATE_TESTS_SIGN(u, u, U, bits, size) | 74 CREATE_TESTS_SIGN(u, u, U, bits, size) |
| 73 | 75 |
| 115 ret |= test_arith_v##sign##int##bits##x##size##_div(a, b); \ | 117 ret |= test_arith_v##sign##int##bits##x##size##_div(a, b); \ |
| 116 ret |= test_arith_v##sign##int##bits##x##size##_and(a, b); \ | 118 ret |= test_arith_v##sign##int##bits##x##size##_and(a, b); \ |
| 117 ret |= test_arith_v##sign##int##bits##x##size##_or(a, b); \ | 119 ret |= test_arith_v##sign##int##bits##x##size##_or(a, b); \ |
| 118 ret |= test_arith_v##sign##int##bits##x##size##_xor(a, b); \ | 120 ret |= test_arith_v##sign##int##bits##x##size##_xor(a, b); \ |
| 119 ret |= test_arith_v##sign##int##bits##x##size##_avg(a, b); \ | 121 ret |= test_arith_v##sign##int##bits##x##size##_avg(a, b); \ |
| 122 ret |= test_arith_v##sign##int##bits##x##size##_min(a, b); \ | |
| 123 ret |= test_arith_v##sign##int##bits##x##size##_max(a, b); \ | |
| 120 } \ | 124 } \ |
| 121 } \ | 125 } \ |
| 122 \ | 126 \ |
| 123 for (size_t i = 0U; i < ARRAY_SIZE(testval##sign##bits); i++) { \ | 127 for (size_t i = 0U; i < ARRAY_SIZE(testval##sign##bits); i++) { \ |
| 124 const v##sign##int##bits##x##size a = vtest##sign##bits##x##size(i); \ | 128 const v##sign##int##bits##x##size a = vtest##sign##bits##x##size(i); \ |
