Implementation notes: amd64, hydra1, crypto_hash/sarmal256

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_hash
Primitive: sarmal256
TimeImplementationCompilerBenchmark dateSUPERCOP version
13334opt64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016101220161009
13341opt64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016101220161009
13363opt64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016101220161009
13389opt64gcc -funroll-loops -O3 -fomit-frame-pointer2016101220161009
13394opt64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016101220161009
13408opt64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016101220161009
13408opt64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016101220161009
13409opt64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016101220161009
13424opt64gcc -march=nocona -O3 -fomit-frame-pointer2016101220161009
13501opt64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016101220161009
13511opt64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016101220161009
13520opt64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016101220161009
13534opt64gcc -funroll-loops -O2 -fomit-frame-pointer2016101220161009
13563opt64gcc -funroll-loops -m64 -O -fomit-frame-pointer2016101220161009
13575opt64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016101220161009
13616opt64gcc -funroll-loops -O -fomit-frame-pointer2016101220161009
13830opt64gcc -m64 -O3 -fomit-frame-pointer2016101220161009
13864opt64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016101220161009
13874opt64gcc -O3 -fomit-frame-pointer2016101220161009
14056opt64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016101220161009
14138opt64gcc -m64 -O -fomit-frame-pointer2016101220161009
14139opt64gcc -march=nocona -O2 -fomit-frame-pointer2016101220161009
14144opt64gcc -fno-schedule-insns -O -fomit-frame-pointer2016101220161009
14144opt64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016101220161009
14174opt64gcc -O -fomit-frame-pointer2016101220161009
14195opt64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101220161009
14198opt64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016101220161009
14205opt64gcc -m64 -march=corei7 -O -fomit-frame-pointer2016101220161009
14211opt64gcc -m64 -march=core2 -O -fomit-frame-pointer2016101220161009
14411opt64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016101220161009
14413opt64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101220161009
14421opt64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101220161009
14426opt64gcc -m64 -O2 -fomit-frame-pointer2016101220161009
14446opt64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016101220161009
14469opt64gcc -O2 -fomit-frame-pointer2016101220161009
14478opt64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016101220161009
14557opt64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016101220161009
14600opt64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016101220161009
14649opt64gcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016101220161009
14656opt64gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016101220161009
14667opt64gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016101220161009
14677opt64gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016101220161009
14680opt64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016101220161009
14685opt64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016101220161009
14757opt64gcc -m64 -march=k8 -O -fomit-frame-pointer2016101220161009
14758opt64gcc -march=nocona -O -fomit-frame-pointer2016101220161009
14763opt64gcc -march=k8 -O -fomit-frame-pointer2016101220161009
14792opt64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016101220161009
14797opt64gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016101220161009
14798opt64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016101220161009
14798opt64gcc -m64 -march=nocona -O -fomit-frame-pointer2016101220161009
14803opt64gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016101220161009
14813opt64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016101220161009
14821opt64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016101220161009
14856opt64gcc -m64 -march=barcelona -O -fomit-frame-pointer2016101220161009
14864opt64gcc -march=barcelona -O -fomit-frame-pointer2016101220161009
14869opt64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016101220161009
14869opt64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016101220161009
14928opt64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016101220161009
14967opt64gcc -m64 -march=k8 -O3 -fomit-frame-pointer2016101220161009
14981opt64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016101220161009
15001opt64gcc -march=k8 -O3 -fomit-frame-pointer2016101220161009
15029opt64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016101220161009
15032opt64gcc -march=barcelona -O3 -fomit-frame-pointer2016101220161009
15154opt64gcc -m64 -march=nocona -Os -fomit-frame-pointer2016101220161009
15162opt64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016101220161009
15165opt64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016101220161009
15170opt64gcc -march=nocona -Os -fomit-frame-pointer2016101220161009
15181opt64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016101220161009
15187opt64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
15192opt64gcc -funroll-loops -Os -fomit-frame-pointer2016101220161009
15206opt64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016101220161009
15278opt64clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101220161009
15293opt64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016101220161009
15294opt64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016101220161009
15306opt64clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016101220161009
15318opt64gcc -march=barcelona -O2 -fomit-frame-pointer2016101220161009
15344opt64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016101220161009
15365opt64gcc -march=k8 -O2 -fomit-frame-pointer2016101220161009
15368opt64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016101220161009
15373opt64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016101220161009
15632opt64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016101220161009
15656opt64gcc -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
15661opt64gcc -march=k8 -Os -fomit-frame-pointer2016101220161009
15670opt64gcc -fno-schedule-insns -Os -fomit-frame-pointer2016101220161009
15675opt64gcc -Os -fomit-frame-pointer2016101220161009
15675opt64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016101220161009
15712opt64gcc -m64 -march=core2 -Os -fomit-frame-pointer2016101220161009
15773opt64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101220161009
15822opt64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016101220161009
15824opt64gcc -m64 -Os -fomit-frame-pointer2016101220161009
15882opt64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016101220161009
16085opt64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016101220161009
16125opt64gcc -march=barcelona -Os -fomit-frame-pointer2016101220161009
16179asm64gcc -fno-schedule-insns -O3 -fomit-frame-pointer2016101220161009
16189asm64gcc -O3 -fomit-frame-pointer2016101220161009
16189asm64gcc -m64 -march=nocona -O3 -fomit-frame-pointer2016101220161009
16195asm64gcc -march=nocona -O3 -fomit-frame-pointer2016101220161009
16205asm64gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016101220161009
16208asm64gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016101220161009
16216asm64gcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016101220161009
16221asm64gcc -funroll-loops -O3 -fomit-frame-pointer2016101220161009
16232asm64gcc -m64 -O3 -fomit-frame-pointer2016101220161009
16237asm64gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016101220161009
16301asm64gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016101220161009
16312asm64gcc -march=barcelona -O3 -fomit-frame-pointer2016101220161009
16333asm64gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016101220161009
16339asm64gcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016101220161009
16343asm64gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016101220161009
16355asm64gcc -funroll-loops -m64 -O -fomit-frame-pointer2016101220161009
16360asm64gcc -funroll-loops -O2 -fomit-frame-pointer2016101220161009
16360asm64gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016101220161009
16360asm64gcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016101220161009
16362asm64gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016101220161009
16368asm64gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016101220161009
16378asm64gcc -funroll-loops -O -fomit-frame-pointer2016101220161009
16390asm64gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016101220161009
16392asm64gcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016101220161009
16397asm64gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016101220161009
16432asm64gcc -O -fomit-frame-pointer2016101220161009
16437asm64gcc -m64 -march=nocona -O -fomit-frame-pointer2016101220161009
16440asm64gcc -march=nocona -O2 -fomit-frame-pointer2016101220161009
16443asm64gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016101220161009
16453asm64gcc -m64 -O -fomit-frame-pointer2016101220161009
16456asm64gcc -m64 -march=core2 -O -fomit-frame-pointer2016101220161009
16469asm64gcc -m64 -march=nocona -O2 -fomit-frame-pointer2016101220161009
16483asm64gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016101220161009
16483asm64gcc -march=nocona -O -fomit-frame-pointer2016101220161009
16486asm64gcc -fno-schedule-insns -O -fomit-frame-pointer2016101220161009
16493opt64clang -O3 -fomit-frame-pointer -Qunused-arguments2016101220161009
16502asm64gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016101220161009
16511asm64gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016101220161009
16512asm64gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016101220161009
16520asm64gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016101220161009
16520asm64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016101220161009
16541asm64gcc -m64 -march=core2 -O2 -fomit-frame-pointer2016101220161009
16544asm64gcc -O2 -fomit-frame-pointer2016101220161009
16554asm64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016101220161009
16557asm64gcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016101220161009
16563opt64clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101220161009
16573asm64gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016101220161009
16573asm64gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016101220161009
16578opt64clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101220161009
16584asm64gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016101220161009
16587asm64gcc -m64 -O2 -fomit-frame-pointer2016101220161009
16589asm64gcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016101220161009
16605asm64gcc -march=barcelona -O2 -fomit-frame-pointer2016101220161009
16627opt64clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016101220161009
16661asm64gcc -march=k8 -O2 -fomit-frame-pointer2016101220161009
16699asm64gcc -m64 -march=k8 -O2 -fomit-frame-pointer2016101220161009
16739asm64gcc -m64 -march=corei7 -O -fomit-frame-pointer2016101220161009
16741asm64gcc -fno-schedule-insns -O2 -fomit-frame-pointer2016101220161009
16746asm64gcc -march=k8 -O -fomit-frame-pointer2016101220161009
16747asm64gcc -m64 -march=barcelona -O -fomit-frame-pointer2016101220161009
16747asm64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016101220161009
16757asm64gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016101220161009
16765asm64gcc -m64 -march=k8 -O -fomit-frame-pointer2016101220161009
16765asm64gcc -march=barcelona -O -fomit-frame-pointer2016101220161009
16810asm64gcc -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
16820asm64gcc -m64 -Os -fomit-frame-pointer2016101220161009
16821asm64gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016101220161009
16821asm64gcc -march=nocona -Os -fomit-frame-pointer2016101220161009
16822asm64gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016101220161009
16822asm64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016101220161009
16840asm64gcc -m64 -march=barcelona -Os -fomit-frame-pointer2016101220161009
16840asm64gcc -m64 -march=core2 -Os -fomit-frame-pointer2016101220161009
16848asm64gcc -Os -fomit-frame-pointer2016101220161009
16856asm64gcc -march=barcelona -Os -fomit-frame-pointer2016101220161009
16861asm64gcc -fno-schedule-insns -Os -fomit-frame-pointer2016101220161009
16885asm64gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016101220161009
16924asm64gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016101220161009
16938asm64gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016101220161009
16939asm64gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016101220161009
16941asm64gcc -funroll-loops -m64 -Os -fomit-frame-pointer2016101220161009
16982asm64gcc -march=k8 -Os -fomit-frame-pointer2016101220161009
16987asm64gcc -funroll-loops -Os -fomit-frame-pointer2016101220161009
16990asm64gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016101220161009
16995asm64gcc -m64 -march=nocona -Os -fomit-frame-pointer2016101220161009
17003asm64gcc -m64 -march=corei7 -Os -fomit-frame-pointer2016101220161009
17085asm64gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016101220161009
17100asm64gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016101220161009
17130asm64gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016101220161009
18102asm64cc2016101220161009
18112asm64gcc -funroll-loops2016101220161009
18123asm64gcc2016101220161009
30064opt64gcc2016101220161009
30094opt64gcc -funroll-loops2016101220161009
30111opt64cc2016101220161009

Test failure

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