diff mbox series

[FFmpeg-devel] tests/checkasm/sw_rgb: Be more strict about clobbering MMX state

Message ID GV1P250MB073793AA892BDD43A27262CC8FF92@GV1P250MB0737.EURP250.PROD.OUTLOOK.COM
State New
Headers show
Series [FFmpeg-devel] tests/checkasm/sw_rgb: Be more strict about clobbering MMX state | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 success Make fate finished

Commit Message

Andreas Rheinhardt June 5, 2024, 8:08 p.m. UTC
The MMXEXT versions of the rgb2rgb functions tested here
always emit emms on their own. Therefore one can use
a stricter test to ensure that it stays that way.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 tests/checkasm/sw_rgb.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

Comments

James Almer June 5, 2024, 8:12 p.m. UTC | #1
On 6/5/2024 5:08 PM, Andreas Rheinhardt wrote:
> The MMXEXT versions of the rgb2rgb functions tested here
> always emit emms on their own. Therefore one can use
> a stricter test to ensure that it stays that way.

Or we could nuke it in favor of an SSE2 version :p

> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>   tests/checkasm/sw_rgb.c | 12 ++++++------
>   1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/checkasm/sw_rgb.c b/tests/checkasm/sw_rgb.c
> index b51d0836c3..47c3cdfcc8 100644
> --- a/tests/checkasm/sw_rgb.c
> +++ b/tests/checkasm/sw_rgb.c
> @@ -53,7 +53,7 @@ static void check_shuffle_bytes(void * func, const char * report)
>       LOCAL_ALIGNED_32(uint8_t, dst0, [MAX_STRIDE]);
>       LOCAL_ALIGNED_32(uint8_t, dst1, [MAX_STRIDE]);
>   
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *src, uint8_t *dst, int src_size);
> +    declare_func(void, const uint8_t *src, uint8_t *dst, int src_size);
>   
>       memset(dst0, 0, MAX_STRIDE);
>       memset(dst1, 0, MAX_STRIDE);
> @@ -84,9 +84,9 @@ static void check_uyvy_to_422p(void)
>       LOCAL_ALIGNED_32(uint8_t, dst_v_0, [(MAX_STRIDE/2) * MAX_HEIGHT]);
>       LOCAL_ALIGNED_32(uint8_t, dst_v_1, [(MAX_STRIDE/2) * MAX_HEIGHT]);
>   
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
> -                      const uint8_t *src, int width, int height,
> -                      int lumStride, int chromStride, int srcStride);
> +    declare_func(void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
> +                 const uint8_t *src, int width, int height,
> +                 int lumStride, int chromStride, int srcStride);
>   
>       randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT * 2);
>       memcpy(src1, src0, MAX_STRIDE * MAX_HEIGHT * 2);
> @@ -127,8 +127,8 @@ static void check_interleave_bytes(void)
>       uint8_t *dst0 = dst0_buf + 2;
>       uint8_t *dst1 = dst1_buf + 2;
>   
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *, const uint8_t *,
> -                                       uint8_t *, int, int, int, int, int);
> +    declare_func(void, const uint8_t *, const uint8_t *,
> +                 uint8_t *, int, int, int, int, int);
>   
>       randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT);
>       randomize_buffers(src1, MAX_STRIDE * MAX_HEIGHT);
Andreas Rheinhardt June 8, 2024, 7:44 p.m. UTC | #2
Andreas Rheinhardt:
> The MMXEXT versions of the rgb2rgb functions tested here
> always emit emms on their own. Therefore one can use
> a stricter test to ensure that it stays that way.
> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
>  tests/checkasm/sw_rgb.c | 12 ++++++------
>  1 file changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/tests/checkasm/sw_rgb.c b/tests/checkasm/sw_rgb.c
> index b51d0836c3..47c3cdfcc8 100644
> --- a/tests/checkasm/sw_rgb.c
> +++ b/tests/checkasm/sw_rgb.c
> @@ -53,7 +53,7 @@ static void check_shuffle_bytes(void * func, const char * report)
>      LOCAL_ALIGNED_32(uint8_t, dst0, [MAX_STRIDE]);
>      LOCAL_ALIGNED_32(uint8_t, dst1, [MAX_STRIDE]);
>  
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *src, uint8_t *dst, int src_size);
> +    declare_func(void, const uint8_t *src, uint8_t *dst, int src_size);
>  
>      memset(dst0, 0, MAX_STRIDE);
>      memset(dst1, 0, MAX_STRIDE);
> @@ -84,9 +84,9 @@ static void check_uyvy_to_422p(void)
>      LOCAL_ALIGNED_32(uint8_t, dst_v_0, [(MAX_STRIDE/2) * MAX_HEIGHT]);
>      LOCAL_ALIGNED_32(uint8_t, dst_v_1, [(MAX_STRIDE/2) * MAX_HEIGHT]);
>  
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
> -                      const uint8_t *src, int width, int height,
> -                      int lumStride, int chromStride, int srcStride);
> +    declare_func(void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
> +                 const uint8_t *src, int width, int height,
> +                 int lumStride, int chromStride, int srcStride);
>  
>      randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT * 2);
>      memcpy(src1, src0, MAX_STRIDE * MAX_HEIGHT * 2);
> @@ -127,8 +127,8 @@ static void check_interleave_bytes(void)
>      uint8_t *dst0 = dst0_buf + 2;
>      uint8_t *dst1 = dst1_buf + 2;
>  
> -    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *, const uint8_t *,
> -                                       uint8_t *, int, int, int, int, int);
> +    declare_func(void, const uint8_t *, const uint8_t *,
> +                 uint8_t *, int, int, int, int, int);
>  
>      randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT);
>      randomize_buffers(src1, MAX_STRIDE * MAX_HEIGHT);

Will apply this patch tomorrow unless there are objections.

- Andreas
diff mbox series

Patch

diff --git a/tests/checkasm/sw_rgb.c b/tests/checkasm/sw_rgb.c
index b51d0836c3..47c3cdfcc8 100644
--- a/tests/checkasm/sw_rgb.c
+++ b/tests/checkasm/sw_rgb.c
@@ -53,7 +53,7 @@  static void check_shuffle_bytes(void * func, const char * report)
     LOCAL_ALIGNED_32(uint8_t, dst0, [MAX_STRIDE]);
     LOCAL_ALIGNED_32(uint8_t, dst1, [MAX_STRIDE]);
 
-    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *src, uint8_t *dst, int src_size);
+    declare_func(void, const uint8_t *src, uint8_t *dst, int src_size);
 
     memset(dst0, 0, MAX_STRIDE);
     memset(dst1, 0, MAX_STRIDE);
@@ -84,9 +84,9 @@  static void check_uyvy_to_422p(void)
     LOCAL_ALIGNED_32(uint8_t, dst_v_0, [(MAX_STRIDE/2) * MAX_HEIGHT]);
     LOCAL_ALIGNED_32(uint8_t, dst_v_1, [(MAX_STRIDE/2) * MAX_HEIGHT]);
 
-    declare_func_emms(AV_CPU_FLAG_MMX, void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
-                      const uint8_t *src, int width, int height,
-                      int lumStride, int chromStride, int srcStride);
+    declare_func(void, uint8_t *ydst, uint8_t *udst, uint8_t *vdst,
+                 const uint8_t *src, int width, int height,
+                 int lumStride, int chromStride, int srcStride);
 
     randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT * 2);
     memcpy(src1, src0, MAX_STRIDE * MAX_HEIGHT * 2);
@@ -127,8 +127,8 @@  static void check_interleave_bytes(void)
     uint8_t *dst0 = dst0_buf + 2;
     uint8_t *dst1 = dst1_buf + 2;
 
-    declare_func_emms(AV_CPU_FLAG_MMX, void, const uint8_t *, const uint8_t *,
-                                       uint8_t *, int, int, int, int, int);
+    declare_func(void, const uint8_t *, const uint8_t *,
+                 uint8_t *, int, int, int, int, int);
 
     randomize_buffers(src0, MAX_STRIDE * MAX_HEIGHT);
     randomize_buffers(src1, MAX_STRIDE * MAX_HEIGHT);