From 21e2b6b501b16b785f2a1d5f51d9e7d75923a07c Mon Sep 17 00:00:00 2001 From: sunyuechi Date: Mon, 18 Dec 2023 22:48:09 +0800 Subject: [PATCH] checkasm/takdsp: add decorrelate_sm test MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: RĂ©mi Denis-Courmont --- tests/checkasm/takdsp.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/tests/checkasm/takdsp.c b/tests/checkasm/takdsp.c index 2fa639bfc1..495b7242c5 100644 --- a/tests/checkasm/takdsp.c +++ b/tests/checkasm/takdsp.c @@ -85,6 +85,34 @@ static void test_decorrelate_sr(TAKDSPContext *s) { report("decorrelate_sr"); } +static void test_decorrelate_sm(TAKDSPContext *s) { +#define BUF_SIZE 1024 + declare_func(void, int32_t *, int32_t *, int); + + if (check_func(s->decorrelate_sm, "decorrelate_sm")) { + LOCAL_ALIGNED_32(int32_t, p1, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p1_2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2, [BUF_SIZE]); + LOCAL_ALIGNED_32(int32_t, p2_2, [BUF_SIZE]); + + randomize(p1, BUF_SIZE); + memcpy(p1, p1_2, BUF_SIZE); + randomize(p2, BUF_SIZE); + memcpy(p2_2, p2, BUF_SIZE); + + call_ref(p1, p2, BUF_SIZE); + call_new(p1_2, p2_2, BUF_SIZE); + + if (memcmp(p2, p2_2, BUF_SIZE) != 0){ + fail(); + } + + bench_new(p1, p2, BUF_SIZE); + } + + report("decorrelate_sm"); +} + void checkasm_check_takdsp(void) { TAKDSPContext s = { 0 }; @@ -92,4 +120,5 @@ void checkasm_check_takdsp(void) test_decorrelate_ls(&s); test_decorrelate_sr(&s); + test_decorrelate_sm(&s); }