Implementation notes: amd64, h5e450, crypto_hash/sarmal256

Computer: h5e450
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20130419
Operation: crypto_hash
Primitive: sarmal256
TimeImplementationCompilerBenchmark dateSUPERCOP version
16812opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012073120120717
16824opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
16830opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2012073120120717
16836opt64gcc -funroll-loops -O -fomit-frame-pointer2012073120120717
16839opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
17085asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
17088asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
17100asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012073120120717
17157opt64gcc -march=nocona -O3 -fomit-frame-pointer2012073120120717
17181asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
17187asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012073120120717
17193opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
17202asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
17205asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2012073120120717
17208asm64gcc -march=nocona -O3 -fomit-frame-pointer2012073120120717
17367asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
17376opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2012073120120717
17382opt64gcc -march=nocona -O -fomit-frame-pointer2012073120120717
17391asm64gcc -O -fomit-frame-pointer2012073120120717
17391asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
17391asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2012073120120717
17394opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2012073120120717
17394asm64gcc -m64 -O -fomit-frame-pointer2012073120120717
17394asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012073120120717
17397asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
17400asm64gcc -march=nocona -O -fomit-frame-pointer2012073120120717
17403asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012073120120717
17403opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2012073120120717
17418asm64gcc -march=nocona -O2 -fomit-frame-pointer2012073120120717
17421opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
17424opt64gcc -funroll-loops -O3 -fomit-frame-pointer2012073120120717
17424asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012073120120717
17427opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2012073120120717
17430opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2012073120120717
17442opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2012073120120717
17553opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2012073120120717
17565opt64gcc -funroll-loops -O2 -fomit-frame-pointer2012073120120717
17565opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2012073120120717
17580opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2012073120120717
17589opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2012073120120717
17598opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2012073120120717
17604opt64gcc -O -fomit-frame-pointer2012073120120717
17610opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2012073120120717
17619opt64gcc -m64 -O -fomit-frame-pointer2012073120120717
17700asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012073120120717
17703asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
17703asm64gcc -march=barcelona -O3 -fomit-frame-pointer2012073120120717
17706opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2012073120120717
17802opt64gcc -m64 -march=core2 -O3 -fomit-frame-pointer2012073120120717
17817asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
17820asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
17820asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012073120120717
17826asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012073120120717
17925asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012073120120717
17928asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
17931asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
17931asm64gcc -march=barcelona -O2 -fomit-frame-pointer2012073120120717
17934asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012073120120717
17955opt64gcc -m64 -O3 -fomit-frame-pointer2012073120120717
17961opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2012073120120717
17967opt64gcc -O3 -fomit-frame-pointer2012073120120717
18078asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
18078asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012073120120717
18090asm64gcc -march=barcelona -O -fomit-frame-pointer2012073120120717
18399opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2012073120120717
18408opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2012073120120717
18432opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2012073120120717
18432opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2012073120120717
18471opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
18480opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2012073120120717
18495opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2012073120120717
18501opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2012073120120717
18504opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2012073120120717
18519opt64gcc -m64 -O2 -fomit-frame-pointer2012073120120717
18531opt64gcc -march=nocona -O2 -fomit-frame-pointer2012073120120717
18543asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
18543asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
18543asm64gcc -march=barcelona -Os -fomit-frame-pointer2012073120120717
18546opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
18546asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012073120120717
18549asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012073120120717
18549asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012073120120717
18549asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
18549asm64gcc -march=k8 -Os -fomit-frame-pointer2012073120120717
18552opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2012073120120717
18552opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2012073120120717
18558opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2012073120120717
18558opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2012073120120717
18564asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012073120120717
18570asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
18570asm64gcc -march=nocona -Os -fomit-frame-pointer2012073120120717
18585opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2012073120120717
18600asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012073120120717
18606opt64gcc -O2 -fomit-frame-pointer2012073120120717
18612opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2012073120120717
18636asm64gcc -Os -fomit-frame-pointer2012073120120717
18678asm64gcc -m64 -Os -fomit-frame-pointer2012073120120717
18714opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
18753asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
18753asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
18753asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
18756asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
18759asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012073120120717
18771asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012073120120717
18774asm64gcc -funroll-loops -Os -fomit-frame-pointer2012073120120717
18774asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012073120120717
18777asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012073120120717
18783opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2012073120120717
18939opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2012073120120717
18945opt64gcc -march=k8 -O -fomit-frame-pointer2012073120120717
18954opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2012073120120717
18957opt64gcc -march=barcelona -O -fomit-frame-pointer2012073120120717
18963opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2012073120120717
19047opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2012073120120717
19047opt64gcc -march=k8 -O3 -fomit-frame-pointer2012073120120717
19050opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2012073120120717
19083opt64gcc -march=barcelona -O3 -fomit-frame-pointer2012073120120717
19086opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2012073120120717
19230asm64gcc2012073120120717
19230asm64gcc -funroll-loops2012073120120717
19239asm64cc2012073120120717
19683opt64gcc -march=k8 -O2 -fomit-frame-pointer2012073120120717
19704opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2012073120120717
19716opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2012073120120717
19728opt64gcc -march=barcelona -O2 -fomit-frame-pointer2012073120120717
19734opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2012073120120717
19950opt64clang -O32012073120120717
20145opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
20271opt64gcc -march=nocona -Os -fomit-frame-pointer2012073120120717
20406opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2012073120120717
20412opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2012073120120717
20412opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2012073120120717
20415opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2012073120120717
20415opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
20427opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2012073120120717
20430opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2012073120120717
20433opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
20451opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2012073120120717
20454opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
20457opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2012073120120717
20457opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2012073120120717
20466opt64gcc -funroll-loops -Os -fomit-frame-pointer2012073120120717
20478opt64gcc -march=barcelona -Os -fomit-frame-pointer2012073120120717
20478opt64gcc -march=k8 -Os -fomit-frame-pointer2012073120120717
20481opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2012073120120717
20481opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2012073120120717
20484opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2012073120120717
20490opt64gcc -Os -fomit-frame-pointer2012073120120717
20532opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2012073120120717
20535opt64gcc -m64 -Os -fomit-frame-pointer2012073120120717
41031opt64gcc -funroll-loops2012073120120717
41160opt64gcc2012073120120717
41442opt64cc2012073120120717

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: 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/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

Compiler output

Implementation: crypto_hash/sarmal256/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