FFmpeg/libavcodec
Christophe Gisquet e5c9de2ab7 rv40: x86 SIMD for biweight
Provide MMX, SSE2 and SSSE3 versions, with a fast-path when the weights are
multiples of 512 (which is often the case when the values round up nicely).

*_TIMER report for the 16x16 and 8x8 cases:
C:
9015 decicycles in 16, 524257 runs, 31 skips
2656 decicycles in 8, 524271 runs, 17 skips
MMX:
4156 decicycles in 16, 262090 runs, 54 skips
1206 decicycles in 8, 262131 runs, 13 skips
MMX on fast-path:
2760 decicycles in 16, 524222 runs, 66 skips
995 decicycles in 8, 524252 runs, 36 skips
SSE2:
2163 decicycles in 16, 262131 runs, 13 skips
832 decicycles in 8, 262137 runs, 7 skips
SSE2 with fast path:
1783 decicycles in 16, 524276 runs, 12 skips
711 decicycles in 8, 524283 runs, 5 skips
SSSE3:
2117 decicycles in 16, 262136 runs, 8 skips
814 decicycles in 8, 262143 runs, 1 skips
SSSE3 with fast path:
1315 decicycles in 16, 524285 runs, 3 skips
578 decicycles in 8, 524286 runs, 2 skips

This means around a 4% speedup for some sequences.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
2012-01-30 23:58:25 +01:00
..
2012-01-30 23:58:25 +01:00
2012-01-27 17:19:09 -08:00
2012-01-26 22:44:37 +01:00
2011-12-02 17:40:40 -05:00
2011-11-25 13:19:54 +00:00
2012-01-28 14:56:18 +00:00
2012-01-28 14:56:18 +00:00
2011-11-25 13:19:54 +00:00
2011-12-02 17:40:40 -05:00
2011-11-02 17:21:45 -04:00
2011-11-02 17:21:45 -04:00
2011-11-02 17:21:45 -04:00
2011-11-25 13:19:54 +00:00
2011-11-25 13:19:54 +00:00
2011-09-29 16:54:00 -04:00
2011-09-13 10:59:47 -04:00
2012-01-24 14:13:46 -05:00
2012-01-03 16:28:17 -05:00
2011-12-02 17:40:40 -05:00
2011-10-10 21:36:12 +02:00
2011-12-02 17:40:40 -05:00
2012-01-27 17:19:09 -08:00
2011-12-25 20:50:20 +01:00
2012-01-01 22:27:04 +01:00
2011-07-27 14:39:56 +01:00
2012-01-10 09:29:22 -08:00
2011-12-05 13:06:58 +01:00
2011-12-18 23:52:53 +01:00
2011-12-31 01:04:09 +01:00
2012-01-27 17:19:09 -08:00
2012-01-03 15:25:54 +01:00
2012-01-03 15:25:51 +01:00
2011-07-21 18:44:40 +01:00
2011-07-21 18:44:40 +01:00
2011-07-21 18:44:40 +01:00
2012-01-08 13:13:11 -08:00
2011-12-02 17:40:40 -05:00
2012-01-27 17:19:09 -08:00
2011-12-10 11:58:03 +01:00
2011-10-10 21:36:13 +02:00
2011-12-05 13:06:58 +01:00
2012-01-27 17:19:09 -08:00
2011-12-02 17:40:40 -05:00
2012-01-06 16:48:27 -05:00
2011-11-26 08:35:57 +01:00
2011-12-02 17:40:40 -05:00
2011-11-26 11:38:40 +00:00
2011-10-11 18:24:51 +01:00
2012-01-11 08:56:24 -05:00
2012-01-11 08:56:24 -05:00
2012-01-11 08:56:24 -05:00
2012-01-11 08:56:24 -05:00
2011-12-02 17:40:40 -05:00
2012-01-27 17:19:09 -08:00
2011-10-21 01:00:41 -07:00
2011-12-03 08:24:27 -08:00
2011-10-21 01:00:41 -07:00
2011-10-21 01:00:41 -07:00
2011-12-16 21:21:48 +00:00
2011-12-28 15:22:18 +01:00
2011-12-28 15:22:18 +01:00
2011-07-21 18:10:58 +01:00
2011-09-15 13:23:04 -07:00
2011-10-20 21:06:58 +02:00
2012-01-11 08:56:24 -05:00
2011-12-02 17:40:40 -05:00
2011-12-02 17:40:40 -05:00
2011-12-11 00:32:25 +01:00
2011-12-05 13:06:58 +01:00
2012-01-27 17:19:09 -08:00
2012-01-27 17:19:09 -08:00
2012-01-26 15:47:36 -08:00
2011-12-02 17:40:40 -05:00
2011-12-02 17:40:40 -05:00
2011-12-02 17:40:40 -05:00
2012-01-11 08:56:24 -05:00
2012-01-27 17:19:09 -08:00
2012-01-15 21:24:18 -05:00
2011-12-16 21:21:48 +00:00
2011-12-19 16:22:30 +01:00
2011-10-07 16:25:31 +02:00
2011-12-02 17:40:40 -05:00
2011-12-02 17:40:40 -05:00
2011-12-21 00:00:03 +01:00
2012-01-27 17:19:09 -08:00
2012-01-10 22:51:56 +01:00
2012-01-16 19:26:41 +01:00
2012-01-10 22:51:56 +01:00
2012-01-12 09:52:33 +01:00
2012-01-16 19:26:41 +01:00
2012-01-16 19:26:41 +01:00
2012-01-10 22:51:56 +01:00
2011-12-02 17:40:40 -05:00
2012-01-28 14:56:18 +00:00
2012-01-27 17:19:09 -08:00
2011-11-26 22:53:47 +00:00
2011-11-26 22:53:47 +00:00
2012-01-13 17:11:41 -05:00
2011-10-10 21:36:13 +02:00
2011-12-18 06:58:03 -08:00
2012-01-27 17:19:09 -08:00
2011-12-02 17:40:40 -05:00
2011-11-28 11:22:36 -08:00
2012-01-27 17:19:09 -08:00
2011-09-07 12:16:15 +02:00
2011-12-11 00:32:25 +01:00
2012-01-27 17:19:09 -08:00
2011-11-28 00:40:22 +01:00
2011-10-12 17:33:58 +02:00
2011-12-11 17:23:24 +00:00
2011-12-02 17:40:40 -05:00
2012-01-27 17:19:09 -08:00
2011-11-25 13:19:54 +00:00
2011-11-17 11:58:49 -08:00
2011-11-17 11:58:40 -08:00
2011-12-02 07:21:08 -08:00
2012-01-27 17:19:09 -08:00
2011-12-02 17:40:40 -05:00
2011-12-11 18:55:16 +00:00
2011-12-02 17:40:40 -05:00
2011-12-19 20:36:26 +02:00
2012-01-23 19:04:35 +01:00
2012-01-23 19:04:35 +01:00
2012-01-23 19:04:35 +01:00
2012-01-27 17:19:09 -08:00
2012-01-27 17:19:09 -08:00