Files
FFmpeg/libavutil
Andreas Rheinhardt e1782fb016 avutil/x86/pixelutils: Don't use mmx in 8x8 SAD
This function is exported, so has to abide by the ABI
and therefore issues emms since commit
5b85ca5317. Yet this is
expensive and using SSE2 instead improves performance.
Also avoid the initial zeroing and the last pointer
increment while just at it.
This removes the last usage of mmx from libavutil*.

Old benchmarks:
sad_8x8_0_c:                                            13.2 ( 1.00x)
sad_8x8_0_mmxext:                                       27.8 ( 0.48x)
sad_8x8_1_c:                                            13.2 ( 1.00x)
sad_8x8_1_mmxext:                                       27.6 ( 0.48x)
sad_8x8_2_c:                                            13.3 ( 1.00x)
sad_8x8_2_mmxext:                                       27.6 ( 0.48x)

New benchmarks:
sad_8x8_0_c:                                            13.3 ( 1.00x)
sad_8x8_0_sse2:                                         11.7 ( 1.13x)
sad_8x8_1_c:                                            13.8 ( 1.00x)
sad_8x8_1_sse2:                                         11.6 ( 1.20x)
sad_8x8_2_c:                                            13.2 ( 1.00x)
sad_8x8_2_sse2:                                         11.8 ( 1.12x)

Hint: Using two psadbw or one psadbw and movhps made no difference
in the benchmarks, so I chose the latter due to smaller codesize.

*: except if lavu provides avpriv_emms for other libraries

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
2026-04-18 21:21:11 +02:00
..
2025-08-03 13:48:47 +02:00
2021-04-27 10:43:13 -03:00
2024-07-21 17:02:12 +02:00
2025-05-07 15:35:47 +02:00
2024-03-04 17:45:00 +01:00
2025-08-03 13:48:47 +02:00
2026-03-02 11:55:30 +01:00
2023-11-18 19:55:42 +01:00
2024-03-15 12:51:15 +01:00
2025-09-02 17:05:50 +02:00
2021-07-22 14:34:31 +02:00
2021-07-22 14:34:31 +02:00
2026-01-18 03:33:04 +00:00
2025-08-03 13:48:47 +02:00
2025-12-23 03:39:16 +00:00
2025-08-03 13:48:47 +02:00
2024-06-01 18:05:58 +03:00
2025-08-03 13:48:47 +02:00
2021-07-21 16:35:27 +02:00
2023-09-07 00:42:10 +02:00
2021-07-22 14:34:31 +02:00
2023-09-07 00:42:10 +02:00
2023-09-07 00:42:10 +02:00
2021-07-22 14:34:31 +02:00
2025-08-03 13:48:47 +02:00
2024-03-31 00:08:43 +01:00
2025-09-02 17:05:50 +02:00
2025-08-03 13:48:47 +02:00
2025-08-03 13:48:47 +02:00
2025-08-03 13:48:47 +02:00
2021-07-22 14:34:31 +02:00
2024-01-16 01:34:57 +01:00
2021-07-22 14:34:31 +02:00
2021-07-22 14:34:31 +02:00
2025-08-03 13:48:47 +02:00
2021-07-22 14:34:31 +02:00
2022-10-17 09:51:47 +02:00
2023-09-07 00:42:10 +02:00
2025-08-03 13:48:47 +02:00
2023-08-08 09:46:11 +02:00
2025-08-03 13:48:47 +02:00