Message ID | CAEa-L+t5fdT8Y=+kYzFyMVb3m0yiM2vL_paDBUZvzJnTBog2VA@mail.gmail.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] checkasm: add test for dcmul_add | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
andriy/make_x86 | success | Make finished |
andriy/make_fate_x86 | success | Make fate finished |
From 2785ce57f68dbb2373c951b9432afa73796f7cc1 Mon Sep 17 00:00:00 2001
From: sunyuechi <sunyuechi@iscas.ac.cn>
Date: Sat, 18 Nov 2023 10:58:17 +0800
Subject: [PATCH] checkasm: test for dcmul_add
---
tests/checkasm/af_afir.c | 141 +++++++++++++++++++++++++++------------
1 file changed, 98 insertions(+), 43 deletions(-)
diff --git a/tests/checkasm/af_afir.c b/tests/checkasm/af_afir.c
index 08c55dacfc..6cb59dbb6c 100644
--- a/tests/checkasm/af_afir.c
+++ b/tests/checkasm/af_afir.c
@@ -33,64 +33,119 @@ do { \
int i; \
double bmg[2], stddev = 10.0, mean = 0.0; \
\
- for (i = 0; i < LEN*2+8; i += 2) { \
+ for (i = 0; i < BUF_SIZE; i += 2) { \
av_bmg_get(&checkasm_lfg, bmg); \
buf[i] = bmg[0] * stddev + mean; \
buf[i + 1] = bmg[1] * stddev + mean; \
} \
} while(0);
-static void test_fcmul_add(const float *src0, const float *src1, const
float *src2)
+static void test_fcmul_add(AudioFIRDSPContext *fir)
{
- LOCAL_ALIGNED_32(float, cdst, [LEN*2+8]);
- LOCAL_ALIGNED_32(float, odst, [LEN*2+8]);
- int i;
-
- declare_func(void, float *sum, const float *t, const float *c,
- ptrdiff_t len);
-
- memcpy(cdst, src0, (LEN*2+8) * sizeof(float));
- memcpy(odst, src0, (LEN*2+8) * sizeof(float));
- call_ref(cdst, src1, src2, LEN);
- call_new(odst, src1, src2, LEN);
- for (i = 0; i <= LEN*2; i++) {
- int idx = i & ~1;
- float cre = src2[idx];
- float cim = src2[idx + 1];
- float tre = src1[idx];
- float tim = src1[idx + 1];
- double t = fabs(src0[i]) +
- fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) +
- fabs(tre * cre) + fabs(tim * cim) +
- fabs(tre * cim) + fabs(tim * cre) +
- fabs(tre * cre - tim * cim) +
- fabs(tre * cim + tim * cre) +
- fabs(cdst[i]) + 1.0;
- if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) {
- fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
- i, cdst[i], odst[i], cdst[i] - odst[i]);
- fail();
- break;
+#define BUF_SIZE LEN*2+8
+ LOCAL_ALIGNED_32(float, src0, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(float, src1, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(float, src2, [BUF_SIZE]);
+
+ randomize_buffer(src0);
+ randomize_buffer(src1);
+ randomize_buffer(src2);
+
+ if (check_func(fir->fcmul_add, "fcmul_add")) {
+ LOCAL_ALIGNED_32(float, cdst, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(float, odst, [BUF_SIZE]);
+ int i;
+
+ declare_func(void, float *sum, const float *t, const float *c,
+ ptrdiff_t len);
+
+ memcpy(cdst, src0, (BUF_SIZE) * sizeof(float));
+ memcpy(odst, src0, (BUF_SIZE) * sizeof(float));
+ call_ref(cdst, src1, src2, LEN);
+ call_new(odst, src1, src2, LEN);
+ for (i = 0; i <= LEN*2; i++) {
+ int idx = i & ~1;
+ float cre = src2[idx];
+ float cim = src2[idx + 1];
+ float tre = src1[idx];
+ float tim = src1[idx + 1];
+ double t = fabs(src0[i]) +
+ fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) +
+ fabs(tre * cre) + fabs(tim * cim) +
+ fabs(tre * cim) + fabs(tim * cre) +
+ fabs(tre * cre - tim * cim) +
+ fabs(tre * cim + tim * cre) +
+ fabs(cdst[i]) + 1.0;
+ if (!float_near_abs_eps(cdst[i], odst[i], t * 2 *
FLT_EPSILON)) {
+ fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
+ i, cdst[i], odst[i], cdst[i] - odst[i]);
+ fail();
+ break;
+ }
}
+ memcpy(odst, src0, (BUF_SIZE) * sizeof(float));
+ bench_new(odst, src1, src2, LEN);
}
- memcpy(odst, src0, (LEN*2+8) * sizeof(float));
- bench_new(odst, src1, src2, LEN);
+
+ report("fcmul_add");
}
-void checkasm_check_afir(void)
+static void test_dcmul_add(AudioFIRDSPContext *fir)
{
- LOCAL_ALIGNED_32(float, src0, [LEN*2+8]);
- LOCAL_ALIGNED_32(float, src1, [LEN*2+8]);
- LOCAL_ALIGNED_32(float, src2, [LEN*2+8]);
- AudioFIRDSPContext fir = { 0 };
-
- ff_afir_init(&fir);
+#define BUF_SIZE LEN*2+8
+ LOCAL_ALIGNED_32(double, src0, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(double, src1, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(double, src2, [BUF_SIZE]);
randomize_buffer(src0);
randomize_buffer(src1);
randomize_buffer(src2);
- if (check_func(fir.fcmul_add, "fcmul_add"))
- test_fcmul_add(src0, src1, src2);
- report("fcmul_add");
+ if (check_func(fir->dcmul_add, "dcmul_add")) {
+ LOCAL_ALIGNED_32(double, cdst, [BUF_SIZE]);
+ LOCAL_ALIGNED_32(double, odst, [BUF_SIZE]);
+ int i;
+
+ declare_func(void, double *sum, const double *t, const double *c,
+ ptrdiff_t len);
+
+ memcpy(cdst, src0, (BUF_SIZE) * sizeof(double));
+ memcpy(odst, src0, (BUF_SIZE) * sizeof(double));
+ call_ref(cdst, src1, src2, LEN);
+ call_new(odst, src1, src2, LEN);
+ for (i = 0; i <= LEN*2; i++) {
+ int idx = i & ~1;
+ double cre = src2[idx];
+ double cim = src2[idx + 1];
+ double tre = src1[idx];
+ double tim = src1[idx + 1];
+ double t = fabs(src0[i]) +
+ fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) +
+ fabs(tre * cre) + fabs(tim * cim) +
+ fabs(tre * cim) + fabs(tim * cre) +
+ fabs(tre * cre - tim * cim) +
+ fabs(tre * cim + tim * cre) +
+ fabs(cdst[i]) + 1.0;
+ if (!double_near_abs_eps(cdst[i], odst[i], t * 2 *
FLT_EPSILON)) {
+ fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n",
+ i, cdst[i], odst[i], cdst[i] - odst[i]);
+ fail();
+ break;
+ }
+ }
+ memcpy(odst, src0, (BUF_SIZE) * sizeof(double));
+ bench_new(odst, src1, src2, LEN);
+ }
+
+ report("dcmul_add");
+}
+
+
+void checkasm_check_afir(void)
+{
+ AudioFIRDSPContext fir = { 0 };
+
+ ff_afir_init(&fir);
+ test_fcmul_add(&fir);
+ test_dcmul_add(&fir);
}
Will push soon except for objections
Le sunnuntaina 19. marraskuuta 2023, 0.28.10 EET flow gg a écrit : > From 2785ce57f68dbb2373c951b9432afa73796f7cc1 Mon Sep 17 00:00:00 2001 > From: sunyuechi <sunyuechi@iscas.ac.cn> > Date: Sat, 18 Nov 2023 10:58:17 +0800 > Subject: [PATCH] checkasm: test for dcmul_add git-am reports the patch corrupt.
This is a bit confusing for me.. I tried pulling the latest code, and then used `git am checkasm-test-for-dcmul_add.patch` without any patch corruption. Rémi Denis-Courmont <remi@remlab.net> 于2023年11月27日周一 03:36写道: > Le sunnuntaina 19. marraskuuta 2023, 0.28.10 EET flow gg a écrit : > > From 2785ce57f68dbb2373c951b9432afa73796f7cc1 Mon Sep 17 00:00:00 2001 > > From: sunyuechi <sunyuechi@iscas.ac.cn> > > Date: Sat, 18 Nov 2023 10:58:17 +0800 > > Subject: [PATCH] checkasm: test for dcmul_add > > git-am reports the patch corrupt. > > -- > Rémi Denis-Courmont > http://www.remlab.net/ > > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
Le 26 novembre 2023 22:54:28 GMT+02:00, flow gg <hlefthleft@gmail.com> a écrit : >This is a bit confusing for me.. I tried pulling the latest code, and then >used `git am checkasm-test-for-dcmul_add.patch` without any patch >corruption. Did you try with the actual sent email or only with the original patch file? _______________________________________________ >> ffmpeg-devel mailing list >> ffmpeg-devel@ffmpeg.org >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> >> To unsubscribe, visit link above, or email >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >> >_______________________________________________ >ffmpeg-devel mailing list >ffmpeg-devel@ffmpeg.org >https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >To unsubscribe, visit link above, or email >ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
In this email, I first attached the original patch, and then sent the content of this patch in the second reply. So I tried downloading the attached original patch and running git am without any issues. then I tried copying the content from the second reply into the patch and then running git am also posed no problems. (I am using the Gmail web page.) Rémi Denis-Courmont <remi@remlab.net> 于2023年11月27日周一 20:17写道: > > > Le 26 novembre 2023 22:54:28 GMT+02:00, flow gg <hlefthleft@gmail.com> a > écrit : > >This is a bit confusing for me.. I tried pulling the latest code, and then > >used `git am checkasm-test-for-dcmul_add.patch` without any patch > >corruption. > > Did you try with the actual sent email or only with the original patch > file? _______________________________________________ > >> ffmpeg-devel mailing list > >> ffmpeg-devel@ffmpeg.org > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > >> > >> To unsubscribe, visit link above, or email > >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > >> > >_______________________________________________ > >ffmpeg-devel mailing list > >ffmpeg-devel@ffmpeg.org > >https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > >To unsubscribe, visit link above, or email > >ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
On Mon, Nov 27, 2023 at 1:53 PM flow gg <hlefthleft@gmail.com> wrote: > In this email, I first attached the original patch, and then sent the > content of this patch in the second reply. > So I tried downloading the attached original patch and running git am > without any issues. > then I tried copying the content from the second reply into the patch and > then running git am also posed no problems. > (I am using the Gmail web page.) > > Please do not top post. I can confirm that first patch in this thread applies cleanly without any issues. > Rémi Denis-Courmont <remi@remlab.net> 于2023年11月27日周一 20:17写道: > > > > > > > Le 26 novembre 2023 22:54:28 GMT+02:00, flow gg <hlefthleft@gmail.com> a > > écrit : > > >This is a bit confusing for me.. I tried pulling the latest code, and > then > > >used `git am checkasm-test-for-dcmul_add.patch` without any patch > > >corruption. > > > > Did you try with the actual sent email or only with the original patch > > file? _______________________________________________ > > >> ffmpeg-devel mailing list > > >> ffmpeg-devel@ffmpeg.org > > >> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > >> > > >> To unsubscribe, visit link above, or email > > >> ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > > >> > > >_______________________________________________ > > >ffmpeg-devel mailing list > > >ffmpeg-devel@ffmpeg.org > > >https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > > >To unsubscribe, visit link above, or email > > >ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > > _______________________________________________ > > ffmpeg-devel mailing list > > ffmpeg-devel@ffmpeg.org > > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > > > To unsubscribe, visit link above, or email > > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". >
From 2785ce57f68dbb2373c951b9432afa73796f7cc1 Mon Sep 17 00:00:00 2001 From: sunyuechi <sunyuechi@iscas.ac.cn> Date: Sat, 18 Nov 2023 10:58:17 +0800 Subject: [PATCH] checkasm: test for dcmul_add --- tests/checkasm/af_afir.c | 141 +++++++++++++++++++++++++++------------ 1 file changed, 98 insertions(+), 43 deletions(-) diff --git a/tests/checkasm/af_afir.c b/tests/checkasm/af_afir.c index 08c55dacfc..6cb59dbb6c 100644 --- a/tests/checkasm/af_afir.c +++ b/tests/checkasm/af_afir.c @@ -33,64 +33,119 @@ do { \ int i; \ double bmg[2], stddev = 10.0, mean = 0.0; \ \ - for (i = 0; i < LEN*2+8; i += 2) { \ + for (i = 0; i < BUF_SIZE; i += 2) { \ av_bmg_get(&checkasm_lfg, bmg); \ buf[i] = bmg[0] * stddev + mean; \ buf[i + 1] = bmg[1] * stddev + mean; \ } \ } while(0); -static void test_fcmul_add(const float *src0, const float *src1, const float *src2) +static void test_fcmul_add(AudioFIRDSPContext *fir) { - LOCAL_ALIGNED_32(float, cdst, [LEN*2+8]); - LOCAL_ALIGNED_32(float, odst, [LEN*2+8]); - int i; - - declare_func(void, float *sum, const float *t, const float *c, - ptrdiff_t len); - - memcpy(cdst, src0, (LEN*2+8) * sizeof(float)); - memcpy(odst, src0, (LEN*2+8) * sizeof(float)); - call_ref(cdst, src1, src2, LEN); - call_new(odst, src1, src2, LEN); - for (i = 0; i <= LEN*2; i++) { - int idx = i & ~1; - float cre = src2[idx]; - float cim = src2[idx + 1]; - float tre = src1[idx]; - float tim = src1[idx + 1]; - double t = fabs(src0[i]) + - fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) + - fabs(tre * cre) + fabs(tim * cim) + - fabs(tre * cim) + fabs(tim * cre) + - fabs(tre * cre - tim * cim) + - fabs(tre * cim + tim * cre) + - fabs(cdst[i]) + 1.0; - if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) { - fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n", - i, cdst[i], odst[i], cdst[i] - odst[i]); - fail(); - break; +#define BUF_SIZE LEN*2+8 + LOCAL_ALIGNED_32(float, src0, [BUF_SIZE]); + LOCAL_ALIGNED_32(float, src1, [BUF_SIZE]); + LOCAL_ALIGNED_32(float, src2, [BUF_SIZE]); + + randomize_buffer(src0); + randomize_buffer(src1); + randomize_buffer(src2); + + if (check_func(fir->fcmul_add, "fcmul_add")) { + LOCAL_ALIGNED_32(float, cdst, [BUF_SIZE]); + LOCAL_ALIGNED_32(float, odst, [BUF_SIZE]); + int i; + + declare_func(void, float *sum, const float *t, const float *c, + ptrdiff_t len); + + memcpy(cdst, src0, (BUF_SIZE) * sizeof(float)); + memcpy(odst, src0, (BUF_SIZE) * sizeof(float)); + call_ref(cdst, src1, src2, LEN); + call_new(odst, src1, src2, LEN); + for (i = 0; i <= LEN*2; i++) { + int idx = i & ~1; + float cre = src2[idx]; + float cim = src2[idx + 1]; + float tre = src1[idx]; + float tim = src1[idx + 1]; + double t = fabs(src0[i]) + + fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) + + fabs(tre * cre) + fabs(tim * cim) + + fabs(tre * cim) + fabs(tim * cre) + + fabs(tre * cre - tim * cim) + + fabs(tre * cim + tim * cre) + + fabs(cdst[i]) + 1.0; + if (!float_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) { + fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n", + i, cdst[i], odst[i], cdst[i] - odst[i]); + fail(); + break; + } } + memcpy(odst, src0, (BUF_SIZE) * sizeof(float)); + bench_new(odst, src1, src2, LEN); } - memcpy(odst, src0, (LEN*2+8) * sizeof(float)); - bench_new(odst, src1, src2, LEN); + + report("fcmul_add"); } -void checkasm_check_afir(void) +static void test_dcmul_add(AudioFIRDSPContext *fir) { - LOCAL_ALIGNED_32(float, src0, [LEN*2+8]); - LOCAL_ALIGNED_32(float, src1, [LEN*2+8]); - LOCAL_ALIGNED_32(float, src2, [LEN*2+8]); - AudioFIRDSPContext fir = { 0 }; - - ff_afir_init(&fir); +#define BUF_SIZE LEN*2+8 + LOCAL_ALIGNED_32(double, src0, [BUF_SIZE]); + LOCAL_ALIGNED_32(double, src1, [BUF_SIZE]); + LOCAL_ALIGNED_32(double, src2, [BUF_SIZE]); randomize_buffer(src0); randomize_buffer(src1); randomize_buffer(src2); - if (check_func(fir.fcmul_add, "fcmul_add")) - test_fcmul_add(src0, src1, src2); - report("fcmul_add"); + if (check_func(fir->dcmul_add, "dcmul_add")) { + LOCAL_ALIGNED_32(double, cdst, [BUF_SIZE]); + LOCAL_ALIGNED_32(double, odst, [BUF_SIZE]); + int i; + + declare_func(void, double *sum, const double *t, const double *c, + ptrdiff_t len); + + memcpy(cdst, src0, (BUF_SIZE) * sizeof(double)); + memcpy(odst, src0, (BUF_SIZE) * sizeof(double)); + call_ref(cdst, src1, src2, LEN); + call_new(odst, src1, src2, LEN); + for (i = 0; i <= LEN*2; i++) { + int idx = i & ~1; + double cre = src2[idx]; + double cim = src2[idx + 1]; + double tre = src1[idx]; + double tim = src1[idx + 1]; + double t = fabs(src0[i]) + + fabs(tre) + fabs(tim) + fabs(cre) + fabs(cim) + + fabs(tre * cre) + fabs(tim * cim) + + fabs(tre * cim) + fabs(tim * cre) + + fabs(tre * cre - tim * cim) + + fabs(tre * cim + tim * cre) + + fabs(cdst[i]) + 1.0; + if (!double_near_abs_eps(cdst[i], odst[i], t * 2 * FLT_EPSILON)) { + fprintf(stderr, "%d: %- .12f - %- .12f = % .12g\n", + i, cdst[i], odst[i], cdst[i] - odst[i]); + fail(); + break; + } + } + memcpy(odst, src0, (BUF_SIZE) * sizeof(double)); + bench_new(odst, src1, src2, LEN); + } + + report("dcmul_add"); +} + + +void checkasm_check_afir(void) +{ + AudioFIRDSPContext fir = { 0 }; + + ff_afir_init(&fir); + test_fcmul_add(&fir); + test_dcmul_add(&fir); } -- 2.42.1