Implementation notes: amd64, h5e450, crypto_hash/sarmal512

Computer: h5e450
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20130419
Operation: crypto_hash
Primitive: sarmal512
TimeImplementationCompilerBenchmark dateSUPERCOP version
20553opt64gcc -funroll-loops -O -fomit-frame-pointer2012073120120717
20565opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
20568opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
20580opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2012073120120717
20589opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012073120120717
20697opt64gcc -march=nocona -O -fomit-frame-pointer2012073120120717
20751asm64gcc -march=nocona -O3 -fomit-frame-pointer2012073120120717
20754asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
20778asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
20781opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
20817asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012073120120717
20856asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012073120120717
20895opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
20895opt64gcc -m64 -O -fomit-frame-pointer2012073120120717
20898opt64gcc -O -fomit-frame-pointer2012073120120717
20898opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012073120120717
20901opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012073120120717
20904opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012073120120717
20919asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012073120120717
20934asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
20949asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
20958opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2012073120120717
21033asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2012073120120717
21033asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012073120120717
21033asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
21033asm64gcc -march=nocona -O -fomit-frame-pointer2012073120120717
21036asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
21036asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012073120120717
21042asm64gcc -m64 -O -fomit-frame-pointer2012073120120717
21066asm64gcc -O -fomit-frame-pointer2012073120120717
21081asm64gcc -march=nocona -O2 -fomit-frame-pointer2012073120120717
21108opt64gcc -march=nocona -O3 -fomit-frame-pointer2012073120120717
21111opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
21135asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
21150asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012073120120717
21201opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
21207opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012073120120717
21336opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012073120120717
21339opt64gcc -funroll-loops -O3 -fomit-frame-pointer2012073120120717
21360opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
21363opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012073120120717
21378asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012073120120717
21384asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
21393asm64gcc -march=barcelona -O3 -fomit-frame-pointer2012073120120717
21408opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012073120120717
21414opt64gcc -funroll-loops -O2 -fomit-frame-pointer2012073120120717
21417opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012073120120717
21420asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012073120120717
21447opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012073120120717
21462asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
21483asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012073120120717
21486asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
21609asm64gcc -march=barcelona -O2 -fomit-frame-pointer2012073120120717
21612asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012073120120717
21645opt64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2012073120120717
21654asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012073120120717
21669asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
21678opt64gcc -m64 -O3 -fomit-frame-pointer2012073120120717
21723asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
21723asm64gcc -march=barcelona -O -fomit-frame-pointer2012073120120717
21744opt64gcc -O3 -fomit-frame-pointer2012073120120717
21744opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2012073120120717
21747asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
21747asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012073120120717
21981opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2012073120120717
21990opt64gcc -m64 -O2 -fomit-frame-pointer2012073120120717
22026opt64gcc -O2 -fomit-frame-pointer2012073120120717
22146opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012073120120717
22188opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012073120120717
22209opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012073120120717
22218opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
22221asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012073120120717
22224asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
22224asm64gcc -m64 -Os -fomit-frame-pointer2012073120120717
22224asm64gcc -march=k8 -Os -fomit-frame-pointer2012073120120717
22227asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
22236asm64gcc -march=barcelona -Os -fomit-frame-pointer2012073120120717
22260asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012073120120717
22260opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
22269asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012073120120717
22275asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012073120120717
22275asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012073120120717
22293asm64gcc -Os -fomit-frame-pointer2012073120120717
22293opt64gcc -march=nocona -O2 -fomit-frame-pointer2012073120120717
22296opt64gcc -march=k8 -O -fomit-frame-pointer2012073120120717
22299opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
22305asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
22305opt64gcc -march=barcelona -O -fomit-frame-pointer2012073120120717
22311opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2012073120120717
22317asm64gcc -march=nocona -Os -fomit-frame-pointer2012073120120717
22320opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012073120120717
22347opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012073120120717
22353opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2012073120120717
22356asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
22359opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012073120120717
22368opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012073120120717
22425asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
22428asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012073120120717
22437asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012073120120717
22437asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012073120120717
22440asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
22443asm64gcc -funroll-loops -Os -fomit-frame-pointer2012073120120717
22479asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
22482asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
22485asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012073120120717
22731opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012073120120717
22746opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012073120120717
22752opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012073120120717
22755opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
22791opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
22794opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012073120120717
22815opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012073120120717
22827opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012073120120717
22875asm64cc2012073120120717
22890asm64gcc2012073120120717
22899opt64gcc -march=k8 -O3 -fomit-frame-pointer2012073120120717
22902asm64gcc -funroll-loops2012073120120717
22905opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2012073120120717
22914opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012073120120717
22968opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
23025opt64gcc -march=barcelona -O3 -fomit-frame-pointer2012073120120717
23442opt64gcc -march=k8 -O2 -fomit-frame-pointer2012073120120717
23454opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012073120120717
23457opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2012073120120717
23541opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
23568opt64gcc -march=barcelona -O2 -fomit-frame-pointer2012073120120717
23874opt64gcc -march=nocona -Os -fomit-frame-pointer2012073120120717
23895opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
23994opt64clang -O32012073120120717
24270opt64gcc -Os -fomit-frame-pointer2012073120120717
24270opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012073120120717
24273opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
24273opt64gcc -march=barcelona -Os -fomit-frame-pointer2012073120120717
24276opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
24285opt64gcc -march=k8 -Os -fomit-frame-pointer2012073120120717
24291opt64gcc -m64 -Os -fomit-frame-pointer2012073120120717
24309opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
24351opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
24369opt64gcc -funroll-loops -Os -fomit-frame-pointer2012073120120717
24375opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012073120120717
24378opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
24381opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
24408opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
24408opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012073120120717
24435opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012073120120717
24462opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012073120120717
24543opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012073120120717
24546opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012073120120717
24555opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012073120120717
24600opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012073120120717
49236opt64cc2012073120120717
49245opt64gcc2012073120120717
49245opt64gcc -funroll-loops2012073120120717

Checksum failure

Implementation: crypto_hash/sarmal512/asm64
Compiler: gcc -m64 -march=k8 -O2 -fomit-frame-pointer
e2cf2e8e623fb36d83bfe3608cfeb6450ad15b9d9c6c1e4bea2695ad7f5282a009fb4aeac03cf5ad582722ed2d653432de9380c3156eab6bbcfbc3787ceebd17
Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -m64 -march=k8 -O2 -fomit-frame-pointer asm64
gcc -march=k8 -O2 -fomit-frame-pointer asm64

Test failure

Implementation: crypto_hash/sarmal512/asm64
Compiler: gcc -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 25, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer asm64
gcc -O3 -fomit-frame-pointer asm64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer asm64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -O2 -fomit-frame-pointer asm64
gcc -funroll-loops -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer asm64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer asm64
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer asm64
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer asm64
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer asm64
gcc -m64 -O2 -fomit-frame-pointer asm64
gcc -m64 -O3 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -O3 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=k8 -O3 -fomit-frame-pointer asm64
gcc -m64 -march=k8 -O -fomit-frame-pointer asm64
gcc -march=k8 -O3 -fomit-frame-pointer asm64
gcc -march=k8 -O -fomit-frame-pointer asm64

Test failure

Implementation: crypto_hash/sarmal512/asm64
Compiler: gcc -funroll-loops -O -fomit-frame-pointer
error 111
crypto_hash does not handle overlap

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -funroll-loops -O -fomit-frame-pointer asm64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer asm64
gcc -funroll-loops -m64 -O -fomit-frame-pointer asm64

Test failure

Implementation: crypto_hash/sarmal512/asm64
Compiler: gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer
error 142
Alarm clock

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer asm64
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer asm64

Compiler output

Implementation: crypto_hash/sarmal512/asm64
Compiler: clang -O3
sarmal.c: sarmal.c:830:3: error: warning: ignoring directive for now
sarmal.c: ".intel_syntax noprefix\n\t"
sarmal.c: ^
sarmal.c: gt;:1:2: note: instantiated into assembly here
sarmal.c: .intel_syntax noprefix
sarmal.c: ^
sarmal.c: sarmal.c:830:28: error: unknown use of instruction mnemonic without a size suffix
sarmal.c: ".intel_syntax noprefix\n\t"
sarmal.c: ^
sarmal.c: gt;:2:2: note: instantiated into assembly here
sarmal.c: mov r8, [rax]
sarmal.c: ^
sarmal.c: sarmal.c:831:19: error: unknown use of instruction mnemonic without a size suffix
sarmal.c: "mov r8, [rax]\n\t"
sarmal.c: ^
sarmal.c: gt;:3:2: note: instantiated into assembly here
sarmal.c: mov r9, [rax+8]
sarmal.c: ^
sarmal.c: sarmal.c:832:21: error: unknown use of instruction mnemonic without a size suffix
sarmal.c: "mov r9, [rax+8]\n\t"
sarmal.c: ^
sarmal.c: gt;:4:2: note: instantiated into assembly here
sarmal.c: mov r10, [rax+16]
sarmal.c: ^
sarmal.c: sarmal.c:833:23: error: unknown use of instruction mnemonic without a size suffix
sarmal.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -O3 asm64