Implementation notes: amd64, hydra1, crypto_hash/sarmal512

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_hash
Primitive: sarmal512
TimeImplementationCompilerBenchmark dateSUPERCOP version
16475opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016101320161009
16502opt64gcc -funroll-loops -O3 -fomit-frame-pointer2016101320161009
16507opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016101320161009
16522opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016101320161009
16541opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016101320161009
16555opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016101320161009
16560opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016101320161009
16623opt64gcc -funroll-loops -O2 -fomit-frame-pointer2016101320161009
16627opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016101320161009
16638opt64gcc -funroll-loops -O -fomit-frame-pointer2016101320161009
16640opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016101320161009
16645opt64gcc -march=nocona -O3 -fomit-frame-pointer2016101320161009
16650opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2016101320161009
16664opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016101320161009
16667opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016101320161009
16715opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016101320161009
16952opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016101320161009
16990opt64gcc -O3 -fomit-frame-pointer2016101320161009
17000opt64gcc -m64 -O3 -fomit-frame-pointer2016101320161009
17023opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016101320161009
17101opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016101320161009
17160opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2016101320161009
17181opt64gcc -march=nocona -O -fomit-frame-pointer2016101320161009
17190opt64gcc -march=nocona -O2 -fomit-frame-pointer2016101320161009
17293opt64gcc -O -fomit-frame-pointer2016101320161009
17341opt64gcc -m64 -O -fomit-frame-pointer2016101320161009
17360opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2016101320161009
17365opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2016101320161009
17379opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016101320161009
17427opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101320161009
17694opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016101320161009
17699opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101320161009
17708opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016101320161009
17708opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101320161009
17709opt64gcc -m64 -O2 -fomit-frame-pointer2016101320161009
17734opt64gcc -O2 -fomit-frame-pointer2016101320161009
17739opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016101320161009
17744opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2016101320161009
17805opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016101320161009
17818opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016101320161009
17822opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016101320161009
17835opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016101320161009
17896opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016101320161009
17934opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016101320161009
17960opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016101320161009
17984opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016101320161009
18008opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016101320161009
18008opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016101320161009
18021opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016101320161009
18061opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016101320161009
18080opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016101320161009
18086opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016101320161009
18119opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016101320161009
18120opt64gcc -march=nocona -Os -fomit-frame-pointer2016101320161009
18128opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016101320161009
18157opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016101320161009
18218opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016101320161009
18224opt64gcc -march=barcelona -O3 -fomit-frame-pointer2016101320161009
18243opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016101320161009
18248opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016101320161009
18261opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016101320161009
18264opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2016101320161009
18317opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2016101320161009
18325opt64gcc -march=k8 -O3 -fomit-frame-pointer2016101320161009
18437opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016101320161009
18459opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016101320161009
18480opt64gcc -funroll-loops -Os -fomit-frame-pointer2016101320161009
18590opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101320161009
18624opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016101320161009
18626opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016101320161009
18640opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2016101320161009
18643opt64gcc -march=barcelona -O2 -fomit-frame-pointer2016101320161009
18653opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016101320161009
18661opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016101320161009
18666opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2016101320161009
18670opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016101320161009
18680opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016101320161009
18709opt64gcc -march=k8 -O -fomit-frame-pointer2016101320161009
18739opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2016101320161009
18805opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016101320161009
18805opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016101320161009
18808opt64gcc -Os -fomit-frame-pointer2016101320161009
18811opt64gcc -march=barcelona -Os -fomit-frame-pointer2016101320161009
18813opt64gcc -m64 -Os -fomit-frame-pointer2016101320161009
18813opt64gcc -march=barcelona -O -fomit-frame-pointer2016101320161009
18822opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2016101320161009
18822opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016101320161009
18835opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2016101320161009
18837opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016101320161009
18837opt64gcc -march=k8 -Os -fomit-frame-pointer2016101320161009
18869opt64gcc -march=k8 -O2 -fomit-frame-pointer2016101320161009
19032opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016101320161009
19078opt64clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016101320161009
19083opt64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101320161009
19760opt64clang -O3 -fomit-frame-pointer -Qunused-arguments2016101320161009
19806asm64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016101320161009
19810asm64gcc -O3 -fomit-frame-pointer2016101220161009
19840asm64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016101220161009
19840asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016101320161009
19840asm64gcc -m64 -O3 -fomit-frame-pointer2016101220161009
19852asm64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016101320161009
19861asm64gcc -march=nocona -O3 -fomit-frame-pointer2016101220161009
19866asm64gcc -funroll-loops -O3 -fomit-frame-pointer2016101320161009
19875asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016101320161009
19888opt64clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101320161009
19890opt64clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101320161009
19893opt64clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101320161009
19906asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016101220161009
19931asm64gcc -funroll-loops -O2 -fomit-frame-pointer2016101320161009
19957asm64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016101320161009
19958asm64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016101220161009
19965asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016101320161009
19973asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016101220161009
19981asm64gcc -march=barcelona -O3 -fomit-frame-pointer2016101220161009
19987asm64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016101320161009
19997asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016101320161009
20007asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016101320161009
20008asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016101320161009
20008asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016101220161009
20010asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016101320161009
20011asm64gcc -funroll-loops -O -fomit-frame-pointer2016101320161009
20029asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2016101220161009
20030asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016101320161009
20035asm64gcc -funroll-loops -m64 -O -fomit-frame-pointer2016101220161009
20037asm64gcc -march=nocona -O -fomit-frame-pointer2016101220161009
20061asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016101220161009
20082asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016101220161009
20099asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2016101220161009
20104asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101220161009
20104asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2016101220161009
20122asm64gcc -O -fomit-frame-pointer2016101220161009
20128asm64gcc -m64 -O -fomit-frame-pointer2016101220161009
20134asm64gcc -m64 -O2 -fomit-frame-pointer2016101220161009
20139asm64gcc -march=nocona -O2 -fomit-frame-pointer2016101220161009
20141asm64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016101220161009
20149asm64gcc -O2 -fomit-frame-pointer2016101220161009
20149asm64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101220161009
20155asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2016101320161009
20158asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016101220161009
20160asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016101320161009
20165asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016101320161009
20171asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016101320161009
20173asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016101320161009
20187asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016101220161009
20189asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016101220161009
20195asm64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101220161009
20197asm64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016101320161009
20197asm64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016101220161009
20197asm64gcc -march=barcelona -O2 -fomit-frame-pointer2016101220161009
20216asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016101220161009
20306asm64gcc -march=k8 -O2 -fomit-frame-pointer2016101220161009
20309asm64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016101220161009
20347asm64gcc -m64 -march=k8 -O -fomit-frame-pointer2016101220161009
20362asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016101220161009
20363asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016101220161009
20371asm64gcc -march=barcelona -O -fomit-frame-pointer2016101220161009
20381asm64gcc -march=k8 -O -fomit-frame-pointer2016101220161009
20392asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2016101220161009
20464asm64gcc -march=nocona -Os -fomit-frame-pointer2016101220161009
20469asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
20470asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016101220161009
20493asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016101220161009
20507asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2016101220161009
20507asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016101220161009
20518asm64gcc -march=k8 -Os -fomit-frame-pointer2016101220161009
20528asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101220161009
20570asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016101320161009
20573asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016101320161009
20584asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016101320161009
20610asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016101320161009
20629asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016101320161009
20634asm64gcc -funroll-loops -Os -fomit-frame-pointer2016101320161009
20670asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016101220161009
20672asm64gcc -march=barcelona -Os -fomit-frame-pointer2016101220161009
20717asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2016101220161009
20720asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016101220161009
20722asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2016101320161009
20726asm64gcc -Os -fomit-frame-pointer2016101220161009
20760asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
20770asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016101320161009
20773asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016101220161009
20827asm64gcc -m64 -Os -fomit-frame-pointer2016101220161009
21715asm64gcc2016101220161009
21736asm64gcc -funroll-loops2016101320161009
22148asm64cc2016101320161009
35181opt64gcc -funroll-loops2016101320161009
35213opt64cc2016101320161009
35221opt64gcc2016101320161009

Test failure

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

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
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 -m64 -march=k8 -O -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 -funroll-loops -march=k8 -O -fomit-frame-pointer asm64

Test failure

Implementation: crypto_hash/sarmal512/asm64
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer asm64 opt64
gcc -m64 -march=k8 -O3 -fomit-frame-pointer asm64
gcc -march=k8 -O3 -fomit-frame-pointer asm64

Compiler output

Implementation: crypto_hash/sarmal512/asm64
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: gt;:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~~~~~~~~~~~~~~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: gt;:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~~~~~~~~~~~~~~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: gt;:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~~~~~~~~~~~~~~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: gt;:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~~~~~~~~~~~~~~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: ...

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments asm64
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments asm64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments asm64
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments asm64
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments asm64
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments asm64