From 0c196a37cb4036d8c618c06c02a011b910cc56ce Mon Sep 17 00:00:00 2001 From: sunyuechi <sunyue...@iscas.ac.cn> Date: Mon, 29 Apr 2024 14:18:23 +0800 Subject: [PATCH 1/2] checkasm/blockdsp: add fill_block test
--- tests/checkasm/blockdsp.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tests/checkasm/blockdsp.c b/tests/checkasm/blockdsp.c index 22a2f79455..355e111d43 100644 --- a/tests/checkasm/blockdsp.c +++ b/tests/checkasm/blockdsp.c @@ -29,6 +29,11 @@ #include "libavutil/intreadwrite.h" #include "libavutil/mem_internal.h" +typedef struct { + const char *name; + int size; +} test; + #define randomize_buffers(size) \ do { \ int i; \ @@ -52,6 +57,31 @@ do { \ } \ } while (0) +static void check_fill(BlockDSPContext *h){ + const test tests[] = { + {"fill_block_tab[0]", 16}, + {"fill_block_tab[1]", 8}, + }; + const int n = 16; + + LOCAL_ALIGNED_32(uint8_t, buf0, [16 * 32]); + LOCAL_ALIGNED_32(uint8_t, buf1, [16 * 32]); + + for (size_t t = 0; t < FF_ARRAY_ELEMS(tests); ++t) { + declare_func(void, uint8_t *block, uint8_t value, + ptrdiff_t line_size, int h); + if (check_func(h->fill_block_tab[t], "blockdsp.%s", tests[t].name)) { + uint8_t value = rnd(); + randomize_buffers(tests[t].size); + call_ref(buf0, value, 16, n); + call_new(buf1, value, 16, n); + if (memcmp(buf0, buf1, sizeof(*buf0) * tests[t].size * n)) + fail(); + bench_new(buf0, value, 16, n); + } + } +} + void checkasm_check_blockdsp(void) { LOCAL_ALIGNED_32(uint16_t, buf0, [6 * 8 * 8]); @@ -64,5 +94,7 @@ void checkasm_check_blockdsp(void) check_clear(clear_block, 8 * 8); check_clear(clear_blocks, 8 * 8 * 6); + check_fill(&h); + report("blockdsp"); } -- 2.44.0
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".