Message ID | CAEa-L+vXvgvtE_tKuSoA_Zvmx2jSMFMTCaPiQ3iur7vkc-uSMA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel,1/6] checkasm/takdsp: add decorrelate_ls test | expand |
Context | Check | Description |
---|---|---|
andriy/configure_x86 | warning | Failed to apply patch |
yinshiyou/configure_loongarch64 | warning | Failed to apply patch |
On Mon, 18 Dec 2023, flow gg wrote: > > +static void test_decorrelate_sr(TAKDSPContext *s) { > +#define BUF_SIZE 1024 > + declare_func(void, int32_t *, int32_t *, int); > + > + if (check_func(s->decorrelate_sr, "decorrelate_sr")) { > + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); > + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); > + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); > + > + randomize(p1, BUF_SIZE); > + randomize(p2, BUF_SIZE); > + memcpy(p2_2, p2, BUF_SIZE); > + > + call_ref(p1, p2, BUF_SIZE); > + call_new(p1, p2_2, BUF_SIZE); > + > + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ > + fail(); > + } This function mutates p1, not p2, so p1 is the one that needs to be copied and checked, and memcpy/memcmp need a *sizeof(). // Martin
From 9254ae1f72498568857357059eb514e8cb90b5f1 Mon Sep 17 00:00:00 2001 From: sunyuechi <sunyuechi@iscas.ac.cn> Date: Mon, 18 Dec 2023 22:47:29 +0800 Subject: [PATCH 2/6] checkasm/takdsp: add decorrelate_sr test --- tests/checkasm/takdsp.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/tests/checkasm/takdsp.c b/tests/checkasm/takdsp.c index 4c7442f922..2fa639bfc1 100644 --- a/tests/checkasm/takdsp.c +++ b/tests/checkasm/takdsp.c @@ -59,10 +59,37 @@ static void test_decorrelate_ls(TAKDSPContext *s) { report("decorrelate_ls"); } +static void test_decorrelate_sr(TAKDSPContext *s) { +#define BUF_SIZE 1024 + declare_func(void, int32_t *, int32_t *, int); + + if (check_func(s->decorrelate_sr, "decorrelate_sr")) { + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + randomize(p2, BUF_SIZE); + memcpy(p2_2, p2, BUF_SIZE); + + call_ref(p1, p2, BUF_SIZE); + call_new(p1, p2_2, BUF_SIZE); + + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("decorrelate_sr"); +} + void checkasm_check_takdsp(void) { TAKDSPContext s = { 0 }; ff_takdsp_init(&s); test_decorrelate_ls(&s); + test_decorrelate_sr(&s); } -- 2.43.0