From 20a93ea8d489304d5c522283d79ea5f9c8fdc804 Mon Sep 17 00:00:00 2001 From: James Almer Date: Sun, 19 Nov 2017 00:32:23 -0300 Subject: checkasm/jpeg2000dsp: refactor rct_int test Signed-off-by: James Almer --- tests/checkasm/jpeg2000dsp.c | 43 +++++++++++++++++++++---------------------- 1 file changed, 21 insertions(+), 22 deletions(-) (limited to 'tests/checkasm') diff --git a/tests/checkasm/jpeg2000dsp.c b/tests/checkasm/jpeg2000dsp.c index 48559df085..4251f8982a 100644 --- a/tests/checkasm/jpeg2000dsp.c +++ b/tests/checkasm/jpeg2000dsp.c @@ -29,43 +29,42 @@ #define randomize_buffers() \ do { \ int i; \ - for (i = 0; i < BUF_SIZE; i += 4) { \ - uint32_t r = rnd(); \ - AV_WN32A(ref0 + i, r); \ - AV_WN32A(new0 + i, r); \ - r = rnd(); \ - AV_WN32A(ref1 + i, r); \ - AV_WN32A(new1 + i, r); \ - r = rnd(); \ - AV_WN32A(ref2 + i, r); \ - AV_WN32A(new2 + i, r); \ - } \ + for (i = 0; i < BUF_SIZE*3; i++) \ + src[i] = rnd(); \ } while (0) -static void check_mct(uint8_t *ref0, uint8_t *ref1, uint8_t *ref2, - uint8_t *new0, uint8_t *new1, uint8_t *new2) { +static void check_rct_int(void) +{ + LOCAL_ALIGNED_32(int32_t, src, [BUF_SIZE*3]); + LOCAL_ALIGNED_32(int32_t, ref, [BUF_SIZE*3]); + LOCAL_ALIGNED_32(int32_t, new, [BUF_SIZE*3]); + int32_t *ref0 = &ref[BUF_SIZE*0], *new0 = &new[BUF_SIZE*0]; + int32_t *ref1 = &ref[BUF_SIZE*1], *new1 = &new[BUF_SIZE*1]; + int32_t *ref2 = &ref[BUF_SIZE*2], *new2 = &new[BUF_SIZE*2]; + declare_func(void, void *src0, void *src1, void *src2, int csize); randomize_buffers(); - call_ref(ref0, ref1, ref2, BUF_SIZE / sizeof(int32_t)); - call_new(new0, new1, new2, BUF_SIZE / sizeof(int32_t)); - if (memcmp(ref0, new0, BUF_SIZE) || memcmp(ref1, new1, BUF_SIZE) || - memcmp(ref2, new2, BUF_SIZE)) + memcpy(ref, src, BUF_SIZE * 3 * sizeof(*src)); + memcpy(new, src, BUF_SIZE * 3 * sizeof(*src)); + call_ref(ref0, ref1, ref2, BUF_SIZE); + call_new(new0, new1, new2, BUF_SIZE); + if (memcmp(ref0, new0, BUF_SIZE * sizeof(*src)) || + memcmp(ref1, new1, BUF_SIZE * sizeof(*src)) || + memcmp(ref2, new2, BUF_SIZE * sizeof(*src))) fail(); - bench_new(new0, new1, new2, BUF_SIZE / sizeof(int32_t)); + memcpy(new, src, BUF_SIZE * 3 * sizeof(*src)); + bench_new(new0, new1, new2, BUF_SIZE); } void checkasm_check_jpeg2000dsp(void) { - LOCAL_ALIGNED_32(uint8_t, ref, [BUF_SIZE*3]); - LOCAL_ALIGNED_32(uint8_t, new, [BUF_SIZE*3]); Jpeg2000DSPContext h; ff_jpeg2000dsp_init(&h); if (check_func(h.mct_decode[FF_DWT53], "jpeg2000_rct_int")) - check_mct(&ref[BUF_SIZE*0], &ref[BUF_SIZE*1], &ref[BUF_SIZE*2], - &new[BUF_SIZE*0], &new[BUF_SIZE*1], &new[BUF_SIZE*2]); + check_rct_int(); report("mct_decode"); } -- cgit v1.2.3