Implementation notes: amd64, bulldozer, crypto_hash/sarmal256

Computer: bulldozer
Architecture: amd64
CPU ID: AuthenticAMD-00600f12-178bfbff
SUPERCOP version: 20120709
Operation: crypto_hash
Primitive: sarmal256
TimeImplementationCompilerBenchmark dateSUPERCOP version
18720asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
18914asm64gcc -march=nocona -O3 -fomit-frame-pointer2012053020120525
18973asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012053020120525
19003asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
19104asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
19175asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
19197asm64gcc -march=nocona -O -fomit-frame-pointer2012053020120525
19210asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012053020120525
19217asm64gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012053020120525
19244asm64gcc -m64 -O -fomit-frame-pointer2012053020120525
19272asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012053020120525
19274asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012053020120525
19295asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012053020120525
19357opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
19372asm64gcc -m64 -Os -fomit-frame-pointer2012053020120525
19440opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
19564asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
19567opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012053020120525
19586asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
19670asm64gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012053020120525
19674asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
19803asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012053020120525
19837asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012053020120525
19900asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
19920asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
19927asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
19986opt64gcc -funroll-loops -O3 -fomit-frame-pointer2012053020120525
19989asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012053020120525
20022asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012053020120525
20024asm64gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012053020120525
20040opt64gcc -funroll-loops -O -fomit-frame-pointer2012053020120525
20052asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
20093asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
20113asm64gcc -O -fomit-frame-pointer2012053020120525
20128opt64gcc -m64 -O2 -fomit-frame-pointer2012053020120525
20145asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012053020120525
20189asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012053020120525
20203opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012053020120525
20228asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
20236asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
20278asm64gcc -march=nocona -O2 -fomit-frame-pointer2012053020120525
20294asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
20303asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2012053020120525
20313opt64gcc -O2 -fomit-frame-pointer2012053020120525
20325asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
20345asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012053020120525
20346asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012053020120525
20368asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012053020120525
20378opt64gcc -m64 -O3 -fomit-frame-pointer2012053020120525
20385asm64gcc -march=barcelona -Os -fomit-frame-pointer2012053020120525
20406asm64gcc -march=barcelona -O3 -fomit-frame-pointer2012053020120525
20410asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012053020120525
20428asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012053020120525
20432asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012053020120525
20447opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012053020120525
20472opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012053020120525
20474asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
20484opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
20488opt64gcc -march=nocona -O3 -fomit-frame-pointer2012053020120525
20537asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012053020120525
20538asm64gcc -march=barcelona -O -fomit-frame-pointer2012053020120525
20540asm64gcc -funroll-loops -Os -fomit-frame-pointer2012053020120525
20543asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012053020120525
20553opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
20575asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
20643asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
20649opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012053020120525
20656asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012053020120525
20671asm64gcc -march=k8 -Os -fomit-frame-pointer2012053020120525
20674asm64gcc -funroll-loops2012053020120525
20679opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012053020120525
20708opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2012053020120525
20723asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012053020120525
20750opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
20753opt64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2012053020120525
20792asm64gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012053020120525
20805asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
20838asm64gcc2012053020120525
20850asm64cc2012053020120525
20890opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2012053020120525
20890opt64gcc -m64 -march=corei7-avx -O -fomit-frame-pointer2012053020120525
20899opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012053020120525
20923opt64gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2012053020120525
20950asm64gcc -march=nocona -Os -fomit-frame-pointer2012053020120525
20970opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012053020120525
20994opt64gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2012053020120525
21016opt64gcc -funroll-loops -O2 -fomit-frame-pointer2012053020120525
21021opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2012053020120525
21033opt64gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2012053020120525
21056opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012053020120525
21090asm64gcc -Os -fomit-frame-pointer2012053020120525
21103asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
21125opt64gcc -m64 -march=core-avx-i -O -fomit-frame-pointer2012053020120525
21171opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012053020120525
21252opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012053020120525
21282opt64gcc -m64 -O -fomit-frame-pointer2012053020120525
21289opt64gcc -O -fomit-frame-pointer2012053020120525
21294opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012053020120525
21307opt64gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2012053020120525
21336opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012053020120525
21502opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2012053020120525
21548opt64gcc -march=nocona -O2 -fomit-frame-pointer2012053020120525
21553opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012053020120525
21572opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
21627opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012053020120525
21646opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012053020120525
21664opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012053020120525
21671opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2012053020120525
21687opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2012053020120525
21789opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
21833opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012053020120525
21844opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2012053020120525
21912opt64gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2012053020120525
21930opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
21939opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012053020120525
21940opt64gcc -march=k8 -O3 -fomit-frame-pointer2012053020120525
21949opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2012053020120525
21953opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012053020120525
21962opt64gcc -march=barcelona -O3 -fomit-frame-pointer2012053020120525
22035opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012053020120525
22138opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012053020120525
22161opt64gcc -march=k8 -O -fomit-frame-pointer2012053020120525
22193opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012053020120525
22324opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012053020120525
22383opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012053020120525
22445opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012053020120525
22473opt64gcc -O3 -fomit-frame-pointer2012053020120525
22619opt64gcc -march=k8 -O2 -fomit-frame-pointer2012053020120525
22633opt64gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2012053020120525
22736opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2012053020120525
22736opt64gcc -march=nocona -O -fomit-frame-pointer2012053020120525
22789opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2012053020120525
22882opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012053020120525
22920opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012053020120525
22950opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012053020120525
22983opt64gcc -march=barcelona -O -fomit-frame-pointer2012053020120525
22985opt64gcc -march=barcelona -O2 -fomit-frame-pointer2012053020120525
22988opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
23039opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
23059opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012053020120525
23122opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012053020120525
23139opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012053020120525
23148opt64gcc -m64 -Os -fomit-frame-pointer2012053020120525
23153opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
23190opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012053020120525
23200opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012053020120525
23218opt64gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2012053020120525
23234opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012053020120525
23254opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012053020120525
23290opt64gcc -Os -fomit-frame-pointer2012053020120525
23318opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012053020120525
23394opt64gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2012053020120525
23428opt64gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2012053020120525
23496opt64gcc -march=k8 -Os -fomit-frame-pointer2012053020120525
23749opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012053020120525
23959opt64gcc -funroll-loops -Os -fomit-frame-pointer2012053020120525
23963opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012053020120525
24165opt64gcc -march=nocona -Os -fomit-frame-pointer2012053020120525
24247opt64gcc -march=barcelona -Os -fomit-frame-pointer2012053020120525
24281opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012053020120525
24292opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012053020120525
24555opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012053020120525
24782asm64gcc -march=barcelona -O2 -fomit-frame-pointer2012053020120525
28236opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012053020120525
40377opt64cc2012053020120525
41284opt64gcc -funroll-loops2012053020120525
42663opt64gcc2012053020120525

Checksum failure

Implementation: crypto_hash/sarmal256/asm64
Compiler: gcc -m64 -march=k8 -O2 -fomit-frame-pointer
3eb9be88f1271c693d908177f324500a7befe6930fdff907df8c1fffbd8fe0ba
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/sarmal256/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/sarmal256/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/sarmal256/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