summaryrefslogtreecommitdiff
path: root/tests/checkasm
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2018-09-13 10:03:46 -0300
committerJames Almer <jamrial@gmail.com>2018-09-14 12:51:55 -0300
commit93bf1dcaecaee85d5315205faabf73ecbd5af853 (patch)
tree9922bf0bbf210c5692d16c40e734bf7f88867987 /tests/checkasm
parent1b98bfb932ad36667ea7f18e24c54978623f6654 (diff)
checkasm/float_dsp: add test for vector_dmul
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'tests/checkasm')
-rw-r--r--tests/checkasm/float_dsp.c24
1 files changed, 24 insertions, 0 deletions
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");