[FFmpeg-devel,1/2] checkasm/float_dsp: add test for vector_dmul

Submitted by James Almer on Sept. 13, 2018, 1:08 p.m.

Details

Message ID 20180913130825.11236-1-jamrial@gmail.com
State Accepted
Commit 93bf1dcaecaee85d5315205faabf73ecbd5af853
Headers show

Commit Message

James Almer Sept. 13, 2018, 1:08 p.m.
Signed-off-by: James Almer <jamrial@gmail.com>
---
 tests/checkasm/float_dsp.c | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)

Patch hide | download patch | download mbox

diff --git a/tests/checkasm/float_dsp.c b/tests/checkasm/float_dsp.c
index 2f999a3162..2abe4eccbd 100644
--- a/tests/checkasm/float_dsp.c
+++ b/tests/checkasm/float_dsp.c
@@ -61,6 +61,28 @@  static void test_vector_fmul(const float *src0, const float *src1)
     bench_new(odst, src0, src1, LEN);
 }
 
+static void test_vector_dmul(const double *src0, const double *src1)
+{
+    LOCAL_ALIGNED_32(double, cdst, [LEN]);
+    LOCAL_ALIGNED_32(double, odst, [LEN]);
+    int i;
+
+    declare_func(void, double *dst, const double *src0, const double *src1,
+                 int len);
+
+    call_ref(cdst, src0, src1, LEN);
+    call_new(odst, src0, src1, LEN);
+    for (i = 0; i < LEN; i++) {
+        if (!double_near_abs_eps(cdst[i], odst[i], DBL_EPSILON)) {
+            fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
+                    i, cdst[i], odst[i], cdst[i] - odst[i]);
+            fail();
+            break;
+        }
+    }
+    bench_new(odst, src0, src1, LEN);
+}
+
 #define ARBITRARY_FMUL_ADD_CONST 0.005
 static void test_vector_fmul_add(const float *src0, const float *src1, const float *src2)
 {
@@ -294,6 +316,8 @@  void checkasm_check_float_dsp(void)
     if (check_func(fdsp->vector_fmac_scalar, "vector_fmac_scalar"))
         test_vector_fmac_scalar(src0, src1, src2);
     report("vector_fmac");
+    if (check_func(fdsp->vector_dmul, "vector_dmul"))
+        test_vector_dmul(dbl_src0, dbl_src1);
     if (check_func(fdsp->vector_dmul_scalar, "vector_dmul_scalar"))
         test_vector_dmul_scalar(dbl_src0, dbl_src1);
     report("vector_dmul");