Andreas Rheinhardt
aeb138679a
avcodec/x86/mpegvideoencdsp: Port add_8x8basis_ssse3() to ASM
...
Both GCC and Clang completely unroll the unlikely loop at -O3,
leading to codesize bloat; their code is also suboptimal, as they
don't make use of pmulhrsw (even with -mssse3). This commit
therefore ports the whole function to external assembly. The new
function occupies 176B here vs 1406B for GCC.
Benchmarks for a testcase with huge qscale (notice that the C version
is unrolled just like the unlikely loop in the SSSE3 version):
add_8x8basis_c: 43.4 ( 1.00x)
add_8x8basis_ssse3 (old): 43.6 ( 1.00x)
add_8x8basis_ssse3 (new): 11.9 ( 3.63x)
Reviewed-by: Kieran Kunhya <kieran@kunhya.com >
Reviewed-by: Lynne <dev@lynne.ee >
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com >
2025-11-18 20:41:12 +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-10 12:22:05 +08:00
2025-11-18 20:41:12 +01:00
2025-11-01 16:57:03 +01:00
2025-11-12 14:40:14 -05:00
2025-11-07 08:43:23 +00:00
2025-11-08 18:48:54 +01:00
2025-11-12 00:37:24 +01:00
2025-10-21 13:21:52 +00:00
2025-11-18 20:41:12 +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-10-17 13:05:07 +02:00
2025-09-22 23:46:29 +00: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-07 17:55:43 +00:00
2025-11-13 15:49:42 +01:00
2025-11-01 16:57:03 +01:00
2025-10-01 01:26:19 +00:00
2025-10-01 01:26:19 +00:00
2025-11-01 16:57:03 +01:00
2025-09-22 23:46:29 +00:00
2025-10-01 01:26:19 +00:00
2025-11-01 16:57:03 +01:00
2025-10-05 22:23:51 -03:00
2025-11-07 17:55:43 +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-17 13:27:56 +02:00
2025-11-12 14:50:21 +01:00
2025-09-22 23:46:29 +00:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +00:00
2025-11-01 16:57:03 +01:00
2025-10-08 20:40:08 +02: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-13 19:05:36 +01: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-09-22 23:46:29 +00:00
2025-09-22 23:46:29 +00:00
2025-11-07 17:55:43 +00: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-10-04 14:18:30 -03:00
2025-10-04 14:18:30 -03: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-07 17:54:10 +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-07 14:51:46 -07:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +00:00
2025-11-01 16:57:03 +01:00
2025-11-08 18:48:54 +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-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-01 16:57:03 +01:00
2025-10-09 12:40:41 -04:00
2025-11-08 01:17:46 +01:00
2025-11-07 17:55:43 +00:00
2025-10-28 21:40:50 +01:00
2025-11-01 16:57:03 +01:00
2025-11-12 00:37:24 +01:00
2025-11-12 00:37:24 +01:00
2025-11-12 00:37:24 +01:00
2025-10-19 01:37:26 +02:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +00: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-08 14:48:12 +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-11 07:51:01 +02:00
2025-09-26 16:15:46 +00:00
2025-11-01 16:57:03 +01:00
2025-09-22 04:54:22 +02:00
2025-11-01 13:31:57 +01:00
2025-11-01 13:31:57 +01:00
2025-09-22 04:54:22 +02:00
2025-11-12 14:50:46 +01:00
2025-11-12 14:50:46 +01:00
2025-11-12 14:50:46 +01:00
2025-09-26 16:15:46 +00:00
2025-10-07 18:06:40 +02:00
2025-10-07 18:06:40 +02:00
2025-10-07 18:06:40 +02:00
2025-09-22 04:54:22 +02:00
2025-09-22 04:54:22 +02:00
2025-11-01 16:57:03 +01:00
2025-09-26 06:20:56 +02:00
2025-09-26 06:20:56 +02:00
2025-09-26 06:21:43 +02:00
2025-09-26 16:15:46 +00:00
2025-10-28 07:11:26 +01:00
2025-11-01 16:57:03 +01:00
2025-10-11 07:51:01 +02:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +00: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-11-07 17:54:10 +00:00
2025-10-05 13:22:23 -03:00
2025-09-25 12:40:57 -04:00
2025-11-07 17:55:43 +00:00
2025-11-07 17:54:10 +00:00
2025-10-23 22:06:04 +08:00
2025-10-23 14:42:50 +00:00
2025-09-26 05:38:46 +02:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-11-12 14:40:14 -05:00
2025-11-12 14:40:14 -05:00
2025-11-02 16:50:36 +01:00
2025-11-14 12:16:48 +00:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-11-08 18:48:54 +01:00
2025-11-01 16:57:03 +01:00
2025-10-28 13:08:02 +00:00
2025-09-26 16:15:46 +00:00
2025-11-01 16:57:03 +01:00
2025-10-04 07:06:32 +02:00
2025-11-01 16:57:03 +01:00
2025-09-23 22:16:02 +00:00
2025-09-22 23:46:29 +00:00
2025-11-01 13:31:57 +01:00
2025-11-18 20:41:12 +01:00
2025-11-01 16:57:03 +01:00
2025-11-07 17:54:10 +00:00
2025-11-18 20:41:12 +01:00
2025-11-18 20:41:12 +01:00
2025-11-18 20:41:12 +01:00
2025-11-11 20:08:36 +00:00
2025-09-25 05:29:58 +02:00
2025-11-09 02:42:17 +01:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00: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-09-26 16:15:46 +00:00
2025-10-07 18:06:40 +02:00
2025-11-01 16:57:03 +01:00
2025-11-07 17:55:43 +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-16 21:43:17 +01:00
2025-11-12 00:37:19 +01: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-11-07 17:54:10 +00: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-10 01:46:52 +00: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-10-07 18:06:40 +02:00
2025-10-07 18:06:40 +02:00
2025-11-07 17:54:10 +00:00
2025-11-07 17:54:10 +00:00
2025-09-26 06:20:30 +02:00
2025-11-01 16:57:03 +01:00
2025-09-25 06:47:30 +02:00
2025-09-25 06:47:30 +02:00
2025-09-22 23:46:29 +00:00
2025-11-09 10:44:09 +00:00
2025-11-15 00:39:43 +00:00
2025-09-26 16:15:46 +00:00
2025-09-26 16:15:46 +00:00
2025-10-07 14:51:46 -07: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-10-07 14:51:46 -07:00
2025-11-01 16:57:03 +01:00
2025-10-13 18:59:49 +02:00
2025-10-13 18:59:24 +02:00
2025-10-13 18:59:49 +02:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +00:00
2025-11-01 16:57:03 +01:00
2025-10-13 18:59:24 +02:00
2025-09-26 16:15:46 +00:00
2025-09-26 16:15:46 +00:00
2025-11-06 21:44:13 +01:00
2025-11-06 22:06:42 +00:00
2025-11-06 22:06:42 +00:00
2025-11-06 22:06:42 +00:00
2025-11-12 00:37:24 +01:00
2025-10-28 06:12:36 +00:00
2025-11-12 00:37:25 +01:00
2025-11-06 21:44:13 +01:00
2025-11-01 16:57:03 +01:00
2025-11-01 16:57:03 +01:00
2025-09-26 16:15:46 +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