Files
FFmpeg/libavcodec
Andreas Rheinhardt 19e377b4b9 avcodec/x86/hpeldsp: Port mmxext functions to SSE2
The only noticable changes in benchmarks are for
the x2 horizontal no_rnd case where SSE2 and movhps
are beneficial:

Old benchmarks:
avg_pixels_tab[1][1]_c:                                 42.2 ( 1.00x)
avg_pixels_tab[1][1]_mmxext:                            10.8 ( 3.89x)
avg_pixels_tab[1][2]_c:                                 18.0 ( 1.00x)
avg_pixels_tab[1][2]_mmxext:                             6.1 ( 2.96x)
put_no_rnd_pixels_tab[1][1]_c:                          29.7 ( 1.00x)
put_no_rnd_pixels_tab[1][1]_mmxext:                     12.3 ( 2.41x)
put_no_rnd_pixels_tab[1][2]_c:                          20.4 ( 1.00x)
put_no_rnd_pixels_tab[1][2]_mmxext:                     12.2 ( 1.67x)
put_pixels_tab[1][1]_c:                                 29.9 ( 1.00x)
put_pixels_tab[1][1]_mmxext:                             7.6 ( 3.92x)
put_pixels_tab[1][2]_c:                                 16.8 ( 1.00x)
put_pixels_tab[1][2]_mmxext:                             6.4 ( 2.63x)

New benchmarks:
avg_pixels_tab[1][1]_c:                                 42.3 ( 1.00x)
avg_pixels_tab[1][1]_sse2:                              10.7 ( 3.95x)
avg_pixels_tab[1][2]_c:                                 17.8 ( 1.00x)
avg_pixels_tab[1][2]_sse2:                               6.3 ( 2.83x)
put_no_rnd_pixels_tab[1][1]_c:                          29.6 ( 1.00x)
put_no_rnd_pixels_tab[1][1]_sse2:                       10.5 ( 2.81x)
put_no_rnd_pixels_tab[1][2]_c:                          20.4 ( 1.00x)
put_no_rnd_pixels_tab[1][2]_sse2:                       12.3 ( 1.67x)
put_pixels_tab[1][1]_c:                                 30.1 ( 1.00x)
put_pixels_tab[1][1]_sse2:                               7.6 ( 3.93x)
put_pixels_tab[1][2]_c:                                 16.8 ( 1.00x)
put_pixels_tab[1][2]_sse2:                               6.4 ( 2.64x)

Switching to SSE2 unfortunately increased codesize of the relevant
functions by 160B.

This makes these functions ABI compatible, i.e. they no longer
rely on others calling emms_c to fix the fpu state. It also
implies that many mpegvideo decoders (the exceptions are MPEG-4,
RV30, RV40 and the VC-1 family) now no longer use any mmx registers
at all. So one can remove the emms_c from the MPEG-1/2 decoder.
The same is true for VP3.

Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2026-06-14 22:04:42 +02:00
..
2026-06-03 14:12:50 +09:00
2026-04-28 14:31:19 +02:00
2026-04-28 12:29:37 +00:00
2026-06-07 10:24:42 -03:00
2026-05-03 16:56:43 +02:00
2026-04-28 12:29:37 +00:00
2025-11-26 15:16:42 +01:00
2026-04-28 12:29:37 +00:00
2026-04-28 12:29:37 +00:00
2026-06-03 14:12:50 +09:00
2026-05-31 20:04:02 +09:00
2026-01-02 18:39:48 +01:00
2026-01-02 18:39:48 +01:00
2026-01-02 18:39:48 +01:00
2026-03-10 13:52:19 +01:00
2026-05-19 17:43:53 +09:00
2025-12-13 18:45:17 -03:00
2026-05-03 18:23:03 +02:00
2026-06-13 15:55:40 +00:00
2025-12-30 17:30:45 +00:00
2026-03-10 13:52:19 +01:00
2026-01-02 18:39:48 +01:00
2026-05-02 21:39:02 +00:00
2026-03-07 19:22:40 -03:00
2026-01-10 22:47:22 +01:00
2026-02-04 12:05:35 +08:00
2026-02-04 12:05:35 +08:00
2026-03-10 13:52:19 +01:00
2026-02-19 22:39:35 +00:00
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
2026-03-28 11:25:38 +01:00
2026-05-03 18:22:24 +02:00
2026-03-02 19:01:46 +01:00
2026-05-03 18:22:18 +02:00
2026-05-03 18:22:13 +02:00
2026-03-10 13:52:18 +01:00
2026-04-28 12:29:37 +00:00
2026-04-28 12:29:37 +00:00
2026-03-10 13:52:19 +01:00
2026-04-28 12:29:37 +00:00
2026-05-19 17:43:53 +09:00
2025-12-30 14:39:08 -05:00
2025-12-30 14:39:08 -05:00
2026-01-02 18:39:48 +01:00
2026-01-02 18:39:48 +01:00
2026-03-16 10:24:33 +00:00