Implementation notes: amd64, glyme, crypto_hash/sarmal512

Computer: glyme
Architecture: amd64
CPU ID: GenuineIntel-00020652-bfebfbff
SUPERCOP version: 201720170105
Operation: crypto_hash
Primitive: sarmal512
TimeImplementationCompilerBenchmark dateSUPERCOP version
16364asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
16380asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020220170105
16392asm64gcc -m64 -O3 -fomit-frame-pointer2017020120170105
16444asm64gcc -funroll-loops -O2 -fomit-frame-pointer2017020120170105
16448asm64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020120170105
16452asm64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020220170105
16460asm64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020220170105
16460asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
16472asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020120170105
16472asm64gcc -march=nocona -O3 -fomit-frame-pointer2017020120170105
16508asm64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020220170105
16508asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020220170105
16524asm64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020120170105
16524asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020120170105
16536asm64gcc -O3 -fomit-frame-pointer2017020120170105
16540asm64gcc -m64 -O2 -fomit-frame-pointer2017020120170105
16540asm64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020120170105
16540asm64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020120170105
16540asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020120170105
16544asm64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020220170105
16548asm64gcc -O2 -fomit-frame-pointer2017020120170105
16548asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020120170105
16556asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020120170105
16556asm64gcc -march=nocona -O2 -fomit-frame-pointer2017020120170105
16600asm64gcc -O -fomit-frame-pointer2017020120170105
16600asm64gcc -m64 -O -fomit-frame-pointer2017020120170105
16604asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2017020220170105
16616asm64gcc -funroll-loops -O3 -fomit-frame-pointer2017020120170105
16616asm64gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020120170105
16620asm64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020120170105
16628asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020120170105
16644asm64gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020120170105
16656asm64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020120170105
16660asm64gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020120170105
16664asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020220170105
16668opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2017020220170105
16668opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2017020220170105
16668asm64gcc -march=nocona -O -fomit-frame-pointer2017020120170105
16680asm64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020120170105
16680asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
16696asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
16716asm64gcc -march=barcelona -O3 -fomit-frame-pointer2017020120170105
16720asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
16720asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2017020120170105
16720asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2017020120170105
16724asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020120170105
16728asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020220170105
16728asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020120170105
16736asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020220170105
16740opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2017020220170105
16744opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2017020220170105
16748asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020120170105
16756asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020120170105
16772asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020120170105
16772asm64gcc -march=k8 -O2 -fomit-frame-pointer2017020120170105
16776asm64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020120170105
16796asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020120170105
16796asm64gcc -march=barcelona -O2 -fomit-frame-pointer2017020120170105
17008asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
17036asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2017020120170105
17036asm64gcc -march=barcelona -O -fomit-frame-pointer2017020120170105
17076asm64gcc -march=k8 -Os -fomit-frame-pointer2017020120170105
17096asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
17244asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
17244opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2017020220170105
17244opt64gcc -march=nocona -O3 -fomit-frame-pointer2017020220170105
17248asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2017020220170105
17276asm64gcc -Os -fomit-frame-pointer2017020120170105
17292asm64gcc -m64 -Os -fomit-frame-pointer2017020120170105
17292asm64gcc -march=barcelona -Os -fomit-frame-pointer2017020120170105
17304opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2017020220170105
17332asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020220170105
17332asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020220170105
17336opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2017020220170105
17348asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020120170105
17352asm64gcc -funroll-loops -Os -fomit-frame-pointer2017020120170105
17352asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020120170105
17352opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2017020220170105
17388opt64gcc -march=nocona -O2 -fomit-frame-pointer2017020220170105
17392opt64gcc -funroll-loops -O3 -fomit-frame-pointer2017020220170105
17392opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2017020220170105
17404opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2017020220170105
17432opt64gcc -funroll-loops -O2 -fomit-frame-pointer2017020220170105
17452opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2017020220170105
17500opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2017020220170105
17500opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2017020220170105
17508opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2017020220170105
17528opt64gcc -O2 -fomit-frame-pointer2017020220170105
17532opt64gcc -m64 -O2 -fomit-frame-pointer2017020220170105
17532opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2017020220170105
17548opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2017020220170105
17592opt64gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2017020220170105
17624opt64gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2017020220170105
17644opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020220170105
17648opt64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2017020220170105
17656opt64gcc -m64 -march=corei7 -O3 -fomit-frame-pointer2017020220170105
17656opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2017020220170105
17660opt64gcc -funroll-loops -O -fomit-frame-pointer2017020220170105
17660opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2017020220170105
17660opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020220170105
17680opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2017020220170105
17692opt64gcc -O3 -fomit-frame-pointer2017020220170105
17700opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2017020220170105
17704asm64gcc -funroll-loops -m64 -O -fomit-frame-pointer2017020120170105
17704opt64gcc -m64 -O3 -fomit-frame-pointer2017020220170105
17708asm64gcc -funroll-loops -O -fomit-frame-pointer2017020120170105
17712asm64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2017020220170105
17720opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2017020220170105
17728opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020220170105
17740asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020120170105
17752opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020220170105
17760opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020220170105
17788asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2017020220170105
17792asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020120170105
17812asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
17812asm64gcc -march=nocona -Os -fomit-frame-pointer2017020120170105
17816asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2017020120170105
17816asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020120170105
17856asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020120170105
17896asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2017020220170105
17900asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2017020120170105
17916opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2017020220170105
17916opt64gcc -march=nocona -Os -fomit-frame-pointer2017020220170105
17924asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020120170105
17924asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020120170105
17936opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2017020220170105
17948opt64gcc -march=barcelona -Os -fomit-frame-pointer2017020220170105
17952opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2017020220170105
17956asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020120170105
17996opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2017020220170105
18000opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2017020220170105
18000opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2017020220170105
18064opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2017020220170105
18072opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2017020220170105
18084opt64gcc -m64 -Os -fomit-frame-pointer2017020220170105
18084opt64gcc -march=k8 -Os -fomit-frame-pointer2017020220170105
18088opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2017020220170105
18096opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2017020220170105
18108opt64gcc -Os -fomit-frame-pointer2017020220170105
18156asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2017020120170105
18196opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2017020220170105
18196opt64gcc -march=nocona -O -fomit-frame-pointer2017020220170105
18240opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2017020220170105
18252opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2017020220170105
18260opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2017020220170105
18260opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2017020220170105
18260opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2017020220170105
18272opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2017020220170105
18276asm64gcc -march=k8 -O -fomit-frame-pointer2017020120170105
18280asm64gcc -m64 -march=k8 -O -fomit-frame-pointer2017020120170105
18296opt64gcc -funroll-loops -Os -fomit-frame-pointer2017020220170105
18300opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2017020220170105
18308opt64gcc -O -fomit-frame-pointer2017020220170105
18312opt64gcc -m64 -O -fomit-frame-pointer2017020220170105
18380opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2017020220170105
18380opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2017020220170105
18392opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2017020220170105
18392opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2017020220170105
18396opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2017020220170105
18416opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2017020220170105
18684opt64gcc -march=k8 -O3 -fomit-frame-pointer2017020220170105
18700opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2017020220170105
18716opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2017020220170105
18720opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2017020220170105
18732opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2017020220170105
18736opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2017020220170105
18768opt64gcc -march=barcelona -O3 -fomit-frame-pointer2017020220170105
18776opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2017020220170105
18780opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2017020220170105
18788opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2017020220170105
18796opt64gcc -march=barcelona -O2 -fomit-frame-pointer2017020220170105
18832opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2017020220170105
18840opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2017020220170105
18840opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2017020220170105
18872opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2017020220170105
18880opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2017020220170105
18896opt64gcc -march=k8 -O2 -fomit-frame-pointer2017020220170105
18924opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2017020220170105
18932opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2017020220170105
18972opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2017020220170105
19080asm64gcc2017020120170105
19128opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2017020220170105
19148opt64gcc -march=k8 -O -fomit-frame-pointer2017020220170105
19176asm64gcc -funroll-loops2017020120170105
19520opt64gcc -march=barcelona -O -fomit-frame-pointer2017020220170105
19540opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2017020220170105
20892opt64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020220170105
20912opt64clang -O3 -fomit-frame-pointer -Qunused-arguments2017020220170105
20920opt64clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2017020220170105
20952opt64clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020220170105
20956opt64clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020220170105
21260opt64clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2017020220170105
40256opt64gcc2017020220170105
40264opt64gcc -funroll-loops2017020220170105
45764opt64cc2017020220170105

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: 4, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=k8 -O2 -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 -O -fomit-frame-pointer asm64

Test failure

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

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer asm64
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer asm64
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: cc
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: 2 errors generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc 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