• Giorgio Vazzana's avatar
    md5: optimize second round by using 4-operation form of G() · d0a34aee
    Giorgio Vazzana authored
    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: 's avatarMichael Niedermayer <michaelni@gmx.at>
    d0a34aee
Name
Last commit
Last update
..
arm Loading commit data...
avr32 Loading commit data...
bfin Loading commit data...
mips Loading commit data...
ppc Loading commit data...
sh4 Loading commit data...
tomi Loading commit data...
x86 Loading commit data...
Makefile Loading commit data...
adler32.c Loading commit data...
adler32.h Loading commit data...
aes.c Loading commit data...
aes.h Loading commit data...
atomic.c Loading commit data...
atomic.h Loading commit data...
atomic_gcc.h Loading commit data...
atomic_suncc.h Loading commit data...
atomic_win32.h Loading commit data...
attributes.h Loading commit data...
audio_fifo.c Loading commit data...
audio_fifo.h Loading commit data...
audioconvert.h Loading commit data...
avassert.h Loading commit data...
avstring.c Loading commit data...
avstring.h Loading commit data...
avutil.h Loading commit data...
base64.c Loading commit data...
base64.h Loading commit data...
blowfish.c Loading commit data...
blowfish.h Loading commit data...
bprint.c Loading commit data...
bprint.h Loading commit data...
bswap.h Loading commit data...
buffer.c Loading commit data...
buffer.h Loading commit data...
buffer_internal.h Loading commit data...
channel_layout.c Loading commit data...
channel_layout.h Loading commit data...
colorspace.h Loading commit data...
common.h Loading commit data...
cpu.c Loading commit data...
cpu.h Loading commit data...
crc.c Loading commit data...
crc.h Loading commit data...
des.c Loading commit data...
des.h Loading commit data...
dict.c Loading commit data...
dict.h Loading commit data...
error.c Loading commit data...
error.h Loading commit data...
eval.c Loading commit data...
eval.h Loading commit data...
fifo.c Loading commit data...
fifo.h Loading commit data...
file.c Loading commit data...
file.h Loading commit data...
float_dsp.c Loading commit data...
float_dsp.h Loading commit data...
frame.c Loading commit data...
frame.h Loading commit data...
hash.c Loading commit data...
hash.h Loading commit data...
hmac.c Loading commit data...
hmac.h Loading commit data...
imgutils.c Loading commit data...
imgutils.h Loading commit data...
integer.c Loading commit data...
integer.h Loading commit data...
internal.h Loading commit data...
intfloat.h Loading commit data...
intfloat_readwrite.c Loading commit data...
intfloat_readwrite.h Loading commit data...
intmath.c Loading commit data...
intmath.h Loading commit data...
intreadwrite.h Loading commit data...
lfg.c Loading commit data...
lfg.h Loading commit data...
libavutil.v Loading commit data...
libm.h Loading commit data...
lls.c Loading commit data...
lls.h Loading commit data...
log.c Loading commit data...
log.h Loading commit data...
log2_tab.c Loading commit data...
lzo.c Loading commit data...
lzo.h Loading commit data...
mathematics.c Loading commit data...
mathematics.h Loading commit data...
md5.c Loading commit data...
md5.h Loading commit data...
mem.c Loading commit data...
mem.h Loading commit data...
murmur3.c Loading commit data...
murmur3.h Loading commit data...
old_pix_fmts.h Loading commit data...
opencl.c Loading commit data...
opencl.h Loading commit data...
opencl_internal.c Loading commit data...
opencl_internal.h Loading commit data...
opt.c Loading commit data...
opt.h Loading commit data...
parseutils.c Loading commit data...
parseutils.h Loading commit data...
pca.c Loading commit data...
pca.h Loading commit data...
pixdesc.c Loading commit data...
pixdesc.h Loading commit data...
pixfmt.h Loading commit data...
qsort.h Loading commit data...
random_seed.c Loading commit data...
random_seed.h Loading commit data...
rational.c Loading commit data...
rational.h Loading commit data...
rc4.c Loading commit data...
rc4.h Loading commit data...
samplefmt.c Loading commit data...
samplefmt.h Loading commit data...
sha.c Loading commit data...
sha.h Loading commit data...
softfloat.c Loading commit data...
softfloat.h Loading commit data...
time.c Loading commit data...
time.h Loading commit data...
timecode.c Loading commit data...
timecode.h Loading commit data...
timer.h Loading commit data...
timestamp.h Loading commit data...
tree.c Loading commit data...
tree.h Loading commit data...
utils.c Loading commit data...
version.h Loading commit data...
x86_cpu.h Loading commit data...
xga_font_data.c Loading commit data...
xga_font_data.h Loading commit data...
xtea.c Loading commit data...
xtea.h Loading commit data...