Andreas Rheinhardt
79080a547a
avcodec/x86/h264_chromamc: Use xmm regs in chroma_mc4 SSSE3 functions
...
Doubling the register size allowed to avoid two pmaddubsw.
It is also ABI compliant (the old version lacked an emms)
and the average versions no longer rely on padding (the old versions
used pavgb with a memory operand reading eight bytes,
although only four are needed).
Old benchmarks (the latter four refer to RV40):
avg_h264_chroma_mc4_8_c: 145.7 ( 1.00x)
avg_h264_chroma_mc4_8_ssse3: 32.3 ( 4.51x)
put_h264_chroma_mc4_8_c: 136.1 ( 1.00x)
put_h264_chroma_mc4_8_ssse3: 29.0 ( 4.70x)
avg_chroma_mc4_c: 162.1 ( 1.00x)
avg_chroma_mc4_ssse3: 31.1 ( 5.22x)
put_chroma_mc4_c: 137.5 ( 1.00x)
put_chroma_mc4_ssse3: 28.6 ( 4.81x)
New benchmarks:
avg_h264_chroma_mc4_8_c: 146.7 ( 1.00x)
avg_h264_chroma_mc4_8_ssse3: 26.5 ( 5.53x)
put_h264_chroma_mc4_8_c: 136.8 ( 1.00x)
put_h264_chroma_mc4_8_ssse3: 22.5 ( 6.09x)
avg_chroma_mc4_c: 165.5 ( 1.00x)
avg_chroma_mc4_ssse3: 27.2 ( 6.08x)
put_chroma_mc4_c: 138.1 ( 1.00x)
put_chroma_mc4_ssse3: 23.2 ( 5.96x)
Reviewed-by: Lynne <dev@lynne.ee >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-11-06 02:16:28 +01:00
..
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-11-05 15:13:54 +00:00
2025-11-05 15:13:54 +00:00
2025-11-01 16:57:03 +01:00
2025-10-25 01:01:15 +02:00
2025-10-28 06:12:14 +00:00
2025-10-21 13:21:52 +00:00
2025-11-06 02:16:28 +01:00
2025-11-01 16:57:03 +01:00
2025-11-04 09:55:51 +00:00
2025-10-25 01:01:14 +02:00
2025-11-05 16:31:59 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-18 12:20:11 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-30 10:54:01 -03:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-17 13:27:56 +02:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-19 01:32:42 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-10-27 13:44:03 +00:00
2025-10-25 01:01:15 +02:00
2025-10-25 01:01:15 +02:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-27 15:39:39 +01:00
2025-10-27 15:39:39 +01:00
2025-11-01 16:57:03 +01:00
2025-11-02 18:14:17 -03:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-25 01:01:15 +02:00
2025-11-05 19:04:01 +01:00
2025-11-01 16:57:03 +01:00
2025-11-02 00:21:18 -03:00
2025-10-28 21:40:50 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 20:46:25 +01:00
2025-10-19 01:37:26 +02:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-30 03:41:24 +01:00
2025-10-30 03:41:24 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 13:31:57 +01:00
2025-11-01 13:31:57 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 07:11:26 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-02 16:50:36 +01:00
2025-10-23 22:06:04 +08:00
2025-10-23 14:42:50 +00:00
2025-11-02 16:50:36 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 13:08:02 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 13:31:57 +01:00
2025-11-01 16:57:03 +01:00
2025-10-30 10:54:01 -03:00
2025-11-01 18:41:27 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 18:48:17 +01:00
2025-11-01 16:57:03 +01:00
2025-10-24 22:24:54 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 23:10:15 +01:00
2025-10-25 22:34:30 +02:00
2025-10-25 22:34:30 +02:00
2025-11-03 00:16:03 -03:00
2025-10-25 01:01:15 +02:00
2025-11-01 16:57:03 +01:00
2025-10-25 01:01:15 +02:00
2025-11-01 16:57:03 +01:00
2025-10-30 12:17:25 +01:00
2025-11-01 13:34:00 +01:00
2025-11-04 10:28:57 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 12:22:49 -03:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-25 19:54:13 +00:00
2025-10-30 02:08:14 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 07:11:26 +01:00
2025-11-05 19:04:01 +01:00
2025-10-27 22:59:41 -03:00
2025-10-28 06:12:36 +00:00
2025-10-25 19:54:13 +00:00
2025-10-27 22:59:41 -03:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00