Mercurial > vec
diff test/test_arith.h @ 9:6ff0b7a44bb6
generic: add initial support for 256-bit and 512-bit types
eventually this could be expanded to add floating point stuff
as well
author | Paper <paper@tflc.us> |
---|---|
date | Mon, 18 Nov 2024 13:52:09 -0500 |
parents | 75ab77f874e2 |
children | d1d5d767004c |
line wrap: on
line diff
--- a/test/test_arith.h Wed Oct 23 19:05:34 2024 -0400 +++ b/test/test_arith.h Mon Nov 18 13:52:09 2024 -0500 @@ -52,7 +52,7 @@ return 0; \ } -#define CREATE_TESTS(sign, psign, csign, bits, size) \ +#define CREATE_TESTS_SIGN(sign, psign, csign, bits, size) \ CREATE_TEST(sign, psign, csign, bits, size, add, orig_a[i] + orig_b[i]) \ CREATE_TEST(sign, psign, csign, bits, size, sub, orig_a[i] - orig_b[i]) \ CREATE_TEST(sign, psign, csign, bits, size, mul, orig_a[i] * orig_b[i]) \ @@ -65,16 +65,26 @@ CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lshift, vec_##sign##lshift(orig_a[i], orig_b[i])) \ CREATE_TEST_SHIFT(sign, psign, csign, bits, size, lrshift, vec_##sign##lrshift(orig_a[i], orig_b[i])) -#define CREATE_TESTS_2(bits, size) \ - CREATE_TESTS(, d, , bits, size) \ - CREATE_TESTS(u, u, U, bits, size) +#define CREATE_TESTS(bits, size) \ + CREATE_TESTS_SIGN(, d, , bits, size) \ + CREATE_TESTS_SIGN(u, u, U, bits, size) + +CREATE_TESTS(8, 16) +CREATE_TESTS(16, 8) +CREATE_TESTS(32, 4) +CREATE_TESTS(64, 2) -CREATE_TESTS_2(8, 16) -CREATE_TESTS_2(16, 8) -CREATE_TESTS_2(32, 4) -CREATE_TESTS_2(64, 2) +CREATE_TESTS(8, 32) +CREATE_TESTS(16, 16) +CREATE_TESTS(32, 8) +CREATE_TESTS(64, 4) -#undef CREATE_TESTS_2 +CREATE_TESTS(8, 64) +CREATE_TESTS(16, 32) +CREATE_TESTS(32, 16) +CREATE_TESTS(64, 8) + +#undef CREATE_TESTS_SIGN #undef CREATE_TESTS #undef CREATE_TEST @@ -82,7 +92,7 @@ { int ret = 0; -#define RUN_TESTS(sign, bits, size) \ +#define RUN_TESTS_SIGN(sign, bits, size) \ for (size_t i = 0U; i < ARRAY_SIZE(testval##sign##bits); i++) { \ const v##sign##int##bits##x##size a = vtest##sign##bits##x##size(i); \ for (size_t j = 0U; j < ARRAY_SIZE(testval##sign##bits); j++) { \ @@ -107,16 +117,26 @@ } \ } -#define RUN_TESTS_2(bits, size) \ - RUN_TESTS( , bits, size) \ - RUN_TESTS(u, bits, size) +#define RUN_TESTS(bits, size) \ + RUN_TESTS_SIGN( , bits, size) \ + RUN_TESTS_SIGN(u, bits, size) + + RUN_TESTS(8, 16) + RUN_TESTS(16, 8) + RUN_TESTS(32, 4) + RUN_TESTS(64, 2) - RUN_TESTS_2(8, 16) - RUN_TESTS_2(16, 8) - RUN_TESTS_2(32, 4) - RUN_TESTS_2(64, 2) + RUN_TESTS(8, 32) + RUN_TESTS(16, 16) + RUN_TESTS(32, 8) + RUN_TESTS(64, 4) -#undef RUN_TESTS_2 + RUN_TESTS(8, 64) + RUN_TESTS(16, 32) + RUN_TESTS(32, 16) + RUN_TESTS(64, 8) + +#undef RUN_TESTS_SIGN #undef RUN_TESTS return ret;