Implementation notes: amd64, bulldozer, crypto_hash/sarmal512

Computer: bulldozer
Architecture: amd64
CPU ID: AuthenticAMD-00600f12-178bfbff
SUPERCOP version: 20120709
Operation: crypto_hash
Primitive: sarmal512
TimeImplementationCompilerBenchmark dateSUPERCOP version
23260asm64gcc -m64 -Os -fomit-frame-pointer2012053020120525
23349asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012053020120525
23361asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
23371asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
23376asm64gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012053020120525
23435asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012053020120525
23447asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
23507asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012053020120525
23550asm64gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012053020120525
23571asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012053020120525
23594asm64gcc -march=nocona -O3 -fomit-frame-pointer2012053020120525
23609asm64gcc -O -fomit-frame-pointer2012053020120525
23633asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012053020120525
23651asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012053020120525
23782asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
23793opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
23805asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012053020120525
23810asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
23814asm64gcc -march=nocona -O -fomit-frame-pointer2012053020120525
23838asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
23859asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
23873asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
23892asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012053020120525
23904asm64gcc -m64 -O -fomit-frame-pointer2012053020120525
23912asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012053020120525
24013asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012053020120525
24025asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012053020120525
24055asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
24082opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012053020120525
24087asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012053020120525
24117asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012053020120525
24199opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012053020120525
24234asm64gcc -march=nocona -O2 -fomit-frame-pointer2012053020120525
24239opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012053020120525
24258asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
24262asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2012053020120525
24278asm64gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012053020120525
24329asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
24437asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
24468asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012053020120525
24494asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012053020120525
24544asm64gcc -march=barcelona -O3 -fomit-frame-pointer2012053020120525
24561asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
24562asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
24612asm64gcc -march=barcelona -O2 -fomit-frame-pointer2012053020120525
24630opt64gcc -march=nocona -O -fomit-frame-pointer2012053020120525
24680opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
24683opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2012053020120525
24693asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012053020120525
24705asm64gcc -march=barcelona -O -fomit-frame-pointer2012053020120525
24709asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
24713asm64gcc -march=nocona -Os -fomit-frame-pointer2012053020120525
24727opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
24738opt64gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2012053020120525
24759opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012053020120525
24780opt64gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012053020120525
24781asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
24787asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
24809asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
24864asm64gcc -funroll-loops -Os -fomit-frame-pointer2012053020120525
24871asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012053020120525
24981asm64gcc -march=k8 -Os -fomit-frame-pointer2012053020120525
25003opt64gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2012053020120525
25013opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
25016opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
25027asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
25030asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
25048asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012053020120525
25055opt64gcc -m64 -O3 -fomit-frame-pointer2012053020120525
25078opt64gcc -funroll-loops -O -fomit-frame-pointer2012053020120525
25090opt64gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2012053020120525
25099asm64cc2012053020120525
25110opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2012053020120525
25120opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012053020120525
25135asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012053020120525
25148asm64gcc -Os -fomit-frame-pointer2012053020120525
25181opt64gcc -m64 -O2 -fomit-frame-pointer2012053020120525
25183opt64gcc -march=nocona -O3 -fomit-frame-pointer2012053020120525
25210asm64gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012053020120525
25214opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
25222opt64gcc -m64 -O -fomit-frame-pointer2012053020120525
25309opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012053020120525
25319opt64gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2012053020120525
25322opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
25356opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
25357asm64gcc -march=barcelona -Os -fomit-frame-pointer2012053020120525
25379asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012053020120525
25418opt64gcc -funroll-loops -O2 -fomit-frame-pointer2012053020120525
25455opt64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2012053020120525
25478opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012053020120525
25483opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
25575opt64gcc -funroll-loops -O3 -fomit-frame-pointer2012053020120525
25585opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012053020120525
25618asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012053020120525
25638opt64gcc -O3 -fomit-frame-pointer2012053020120525
25643opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2012053020120525
25652asm64gcc -funroll-loops2012053020120525
25680opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2012053020120525
25692asm64gcc2012053020120525
25692opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012053020120525
25714opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012053020120525
25823opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2012053020120525
25824opt64gcc -O2 -fomit-frame-pointer2012053020120525
25831opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012053020120525
25863opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2012053020120525
25867opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012053020120525
25867opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012053020120525
25926opt64gcc -march=k8 -O3 -fomit-frame-pointer2012053020120525
25952opt64gcc -O -fomit-frame-pointer2012053020120525
25959opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012053020120525
25982asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
25984opt64gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2012053020120525
26020opt64gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2012053020120525
26034opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2012053020120525
26083opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012053020120525
26086opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
26110opt64gcc -march=nocona -O2 -fomit-frame-pointer2012053020120525
26184opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012053020120525
26320opt64gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2012053020120525
26362opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012053020120525
26428opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012053020120525
26487opt64gcc -march=k8 -O -fomit-frame-pointer2012053020120525
26515opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012053020120525
26553opt64gcc -march=barcelona -O -fomit-frame-pointer2012053020120525
26603opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012053020120525
26749opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2012053020120525
26820opt64gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012053020120525
26822opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
26959opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
26972opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
26979opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012053020120525
27103opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012053020120525
27103opt64gcc -march=k8 -O2 -fomit-frame-pointer2012053020120525
27179opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012053020120525
27276opt64gcc -march=barcelona -O3 -fomit-frame-pointer2012053020120525
27309opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012053020120525
27312opt64gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012053020120525
27318opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
27352opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012053020120525
27422opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012053020120525
27466opt64gcc -funroll-loops -Os -fomit-frame-pointer2012053020120525
27467opt64gcc -m64 -Os -fomit-frame-pointer2012053020120525
27524opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
27590opt64gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012053020120525
27602opt64gcc -march=barcelona -O2 -fomit-frame-pointer2012053020120525
27658opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012053020120525
27729opt64gcc -march=barcelona -Os -fomit-frame-pointer2012053020120525
27741opt64gcc -Os -fomit-frame-pointer2012053020120525
27765opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
27775opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
27797opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
27826opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012053020120525
27861opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
27991opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012053020120525
28180opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012053020120525
28256opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
28283opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012053020120525
28489opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
28494opt64gcc -march=k8 -Os -fomit-frame-pointer2012053020120525
28639opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012053020120525
28851opt64gcc -march=nocona -Os -fomit-frame-pointer2012053020120525
28925opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
29604opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012053020120525
30817opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012053020120525
48437opt64cc2012053020120525
49470opt64gcc -funroll-loops2012053020120525
49832opt64gcc2012053020120525

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: 32, 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=core-avx-i -O2 -fomit-frame-pointer asm64
gcc -m64 -march=core-avx-i -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.1 -O3 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer asm64
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer asm64
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer asm64
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer asm64
gcc -m64 -march=corei7 -O3 -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