| Index: crosstest/mem_intrin_main.c
|
| diff --git a/crosstest/mem_intrin_main.c b/crosstest/mem_intrin_main.c
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..31016131e516fcddce084f948d9c26209086ef7b
|
| --- /dev/null
|
| +++ b/crosstest/mem_intrin_main.c
|
| @@ -0,0 +1,38 @@
|
| +/* crosstest.py --test=mem_intrin.c --driver=mem_intrin_main.c \
|
| + --prefix=Subzero_ --output=mem_intrin */
|
| +
|
| +#include <stdint.h>
|
| +#include <stdio.h>
|
| +
|
| +int memcpy_test(uint8_t n);
|
| +int memmove_test(uint8_t n);
|
| +int memset_test(uint8_t n);
|
| +int Subzero_memcpy_test(uint8_t n);
|
| +int Subzero_memmove_test(uint8_t n);
|
| +int Subzero_memset_test(uint8_t n);
|
| +
|
| +int main(int argc, char **argv) {
|
| + unsigned TotalTests = 0;
|
| + unsigned Passes = 0;
|
| + unsigned Failures = 0;
|
| +#define do_test(test_func) \
|
| + for (uint8_t i = 0; i < 100; ++i) { \
|
| + ++TotalTests; \
|
| + int llc_result = test_func(i); \
|
| + int sz_result = Subzero_##test_func(i); \
|
| + if (llc_result == sz_result) { \
|
| + ++Passes; \
|
| + } else { \
|
| + ++Failures; \
|
| + printf("Failure (%s): i=%d, llc=%d, sz=%d\n", #test_func, \
|
| + i, llc_result, sz_result); \
|
| + } \
|
| + }
|
| +
|
| + do_test(memcpy_test)
|
| + do_test(memmove_test)
|
| + /* Broken: invalid push byte for val argument */
|
| + /* do_test(memset_test) */
|
| + printf("TotalTests=%u Passes=%u Failures=%u\n", TotalTests, Passes, Failures);
|
| + return Failures;
|
| +}
|
|
|