mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 03:59:43 +00:00
avutil/float_dsp: add test for vector_dmac_scalar
This commit is contained in:
parent
0da3c568fd
commit
128e1fbf13
@ -144,6 +144,26 @@ static int test_vector_fmul_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *c
|
||||
return ret;
|
||||
}
|
||||
|
||||
#define ARBITRARY_DMAC_SCALAR_CONST 0.005
|
||||
static int test_vector_dmac_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp,
|
||||
const double *v1, const double *src0, double scale)
|
||||
{
|
||||
LOCAL_ALIGNED(32, double, cdst, [LEN]);
|
||||
LOCAL_ALIGNED(32, double, odst, [LEN]);
|
||||
int ret;
|
||||
|
||||
memcpy(cdst, v1, LEN * sizeof(*v1));
|
||||
memcpy(odst, v1, LEN * sizeof(*v1));
|
||||
|
||||
cdsp->vector_dmac_scalar(cdst, src0, scale, LEN);
|
||||
fdsp->vector_dmac_scalar(odst, src0, scale, LEN);
|
||||
|
||||
if (ret = compare_doubles(cdst, odst, LEN, ARBITRARY_DMAC_SCALAR_CONST))
|
||||
av_log(NULL, AV_LOG_ERROR, "vector_dmac_scalar failed\n");
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int test_vector_dmul_scalar(AVFloatDSPContext *fdsp, AVFloatDSPContext *cdsp,
|
||||
const double *v1, double scale)
|
||||
{
|
||||
@ -262,6 +282,7 @@ int main(int argc, char **argv)
|
||||
LOCAL_ALIGNED(32, float, src2, [LEN]);
|
||||
LOCAL_ALIGNED(32, double, dbl_src0, [LEN]);
|
||||
LOCAL_ALIGNED(32, double, dbl_src1, [LEN]);
|
||||
LOCAL_ALIGNED(32, double, dbl_src2, [LEN]);
|
||||
|
||||
for (;;) {
|
||||
int arg = getopt(argc, argv, "s:c:");
|
||||
@ -306,6 +327,7 @@ int main(int argc, char **argv)
|
||||
|
||||
fill_double_array(&lfg, dbl_src0, LEN);
|
||||
fill_double_array(&lfg, dbl_src1, LEN);
|
||||
fill_double_array(&lfg, dbl_src2, LEN);
|
||||
|
||||
if (test_vector_fmul(fdsp, cdsp, src0, src1))
|
||||
ret -= 1 << 0;
|
||||
@ -325,6 +347,8 @@ int main(int argc, char **argv)
|
||||
ret -= 1 << 7;
|
||||
if (test_vector_dmul_scalar(fdsp, cdsp, dbl_src0, dbl_src1[0]))
|
||||
ret -= 1 << 8;
|
||||
if (test_vector_dmac_scalar(fdsp, cdsp, dbl_src2, dbl_src0, dbl_src1[0]))
|
||||
ret -= 1 << 9;
|
||||
|
||||
end:
|
||||
av_freep(&fdsp);
|
||||
|
Loading…
Reference in New Issue
Block a user