diff options
author | Giorgio Vazzana <mywing81@gmail.com> | 2013-05-18 13:53:52 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-05-20 04:27:34 +0200 |
commit | d0a34aeedff187873e1b42e0902d9dfbba08a1f4 (patch) | |
tree | ff7decbc6941a6e51dc4f7f99e6f00b82b703f1a /libavcodec/eatgq.c | |
parent | b7be8ea92a4b23de5d622097ba451c4b266e6563 (diff) | |
download | ffmpeg-d0a34aeedff187873e1b42e0902d9dfbba08a1f4.tar.gz |
md5: optimize second round by using 4-operation form of G()
4-operation form is preferred over 3-operation because it breaks a long
dependency chain, thus allowing a superscalar processor to execute more
operations in parallel.
The idea was taken from: http://www.zorinaq.com/papers/md5-amd64.html
AMD Athlon(tm) II X3 450 Processor, x86_64
$ for i in $(seq 1 4); do ./avutil_md5_test2; done
size: 1048576 runs: 1024 time: 5.821 +- 0.019
size: 1048576 runs: 1024 time: 5.822 +- 0.019
size: 1048576 runs: 1024 time: 5.841 +- 0.018
size: 1048576 runs: 1024 time: 5.821 +- 0.018
$ for i in $(seq 1 4); do ./avutil_md5_test2; done
size: 1048576 runs: 1024 time: 5.646 +- 0.019
size: 1048576 runs: 1024 time: 5.646 +- 0.018
size: 1048576 runs: 1024 time: 5.642 +- 0.019
size: 1048576 runs: 1024 time: 5.641 +- 0.019
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/eatgq.c')
0 files changed, 0 insertions, 0 deletions