Implementation notes: amd64, morningstar, crypto_hash/cheetah512

Computer: morningstar
Architecture: amd64
CPU ID: AuthenticAMD-00100f42-178bfbff
SUPERCOP version: 20170904
Operation: crypto_hash
Primitive: cheetah512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
25431? ? ?? ? ?asm64gcc_-funroll-loops2017072520170718
25433? ? ?? ? ?asmgcc_-funroll-loops2017072520170718
25437? ? ?? ? ?asmgcc2017072520170718
25437? ? ?? ? ?asm64gcc2017072520170718
25459? ? ?? ? ?asmcc2017072520170718
25495? ? ?? ? ?asm64cc2017072520170718

Test failure

Implementation: crypto_hash/cheetah512/asm
Compiler: gcc -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 178, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer asm asm64
gcc -O3 -fomit-frame-pointer asm asm64
gcc -O -fomit-frame-pointer asm asm64
gcc -Os -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -m64 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -O -fomit-frame-pointer asm asm64
gcc -m64 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -march=k8 -O -fomit-frame-pointer asm asm64
gcc -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv asm asm64
gcc -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -march=nocona -O -fomit-frame-pointer asm asm64
gcc -march=nocona -Os -fomit-frame-pointer asm asm64

Test failure

Implementation: crypto_hash/cheetah512/asm
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
error 111

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -Os -fomit-frame-pointer asm asm64

Compiler output

Implementation: crypto_hash/cheetah512/asm
Compiler: cc
Cheetah.c: Cheetah.c: In function 'Update':
Cheetah.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
Cheetah.c: ^
Cheetah.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
Cheetah.c: ^
hash.c: In file included from hash.c:2:0:
hash.c: Cheetah.c: In function 'Update':
hash.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
hash.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
hash.c: ^
hash.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
hash.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
hash.c: ^
Cheetah512-64.s: Cheetah512-64.s: Assembler messages:
Cheetah512-64.s: Cheetah512-64.s:4992: Warning: zero assumed for missing expression

Number of similar (compiler,implementation) pairs: 184, namely:
CompilerImplementations
cc asm asm64
gcc asm asm64
gcc -O2 -fomit-frame-pointer asm asm64
gcc -O3 -fomit-frame-pointer asm asm64
gcc -O -fomit-frame-pointer asm asm64
gcc -Os -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O2 -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O3 -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -O -fomit-frame-pointer asm asm64
gcc -fno-schedule-insns -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops asm asm64
gcc -funroll-loops -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer asm asm64
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -m64 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -O -fomit-frame-pointer asm asm64
gcc -m64 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=corei7 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -O -fomit-frame-pointer asm asm64
gcc -m64 -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer asm asm64
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -O -fomit-frame-pointer asm asm64
gcc -m64 -march=nocona -Os -fomit-frame-pointer asm asm64
gcc -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -march=barcelona -Os -fomit-frame-pointer asm asm64
gcc -march=k8 -O2 -fomit-frame-pointer asm asm64
gcc -march=k8 -O3 -fomit-frame-pointer asm asm64
gcc -march=k8 -O -fomit-frame-pointer asm asm64
gcc -march=k8 -Os -fomit-frame-pointer asm asm64
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv asm asm64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv asm asm64
gcc -march=nocona -O2 -fomit-frame-pointer asm asm64
gcc -march=nocona -O3 -fomit-frame-pointer asm asm64
gcc -march=nocona -O -fomit-frame-pointer asm asm64
gcc -march=nocona -Os -fomit-frame-pointer asm asm64

Compiler output

Implementation: crypto_hash/cheetah512/asm
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
Cheetah.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' is invalid in C99 [-Wimplicit-function-declaration]
Cheetah.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
Cheetah.c: ^
Cheetah.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' is invalid in C99 [-Wimplicit-function-declaration]
Cheetah.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
Cheetah.c: ^
Cheetah.c: 2 warnings generated.
hash.c: In file included from hash.c:2:
hash.c: ./Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
hash.c: ^
hash.c: ./Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' is invalid in C99 [-Wimplicit-function-declaration]
hash.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
hash.c: ^
hash.c: 2 warnings generated.
Cheetah512-64.s: Cheetah512-64.s:4992:11: error: invalid hexadecimal number
Cheetah512-64.s: .quad 0x
Cheetah512-64.s: ^

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

Compiler output

Implementation: crypto_hash/cheetah512/asm
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
Cheetah.c: Cheetah.c: In function 'Update':
Cheetah.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
Cheetah.c: ^
Cheetah.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
Cheetah.c: ^
hash.c: In file included from hash.c:2:0:
hash.c: Cheetah.c: In function 'Update':
hash.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
hash.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
hash.c: ^
hash.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
hash.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
hash.c: ^
Cheetah512-64.s: Cheetah512-64.s: Assembler messages:
Cheetah512-64.s: Cheetah512-64.s:4992: Warning: zero assumed for missing expression
Cheetah.c: Cheetah.c: In function 'Update':
Cheetah.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
Cheetah.c: ^
Cheetah.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
Cheetah.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
Cheetah.c: ^
hash.c: In file included from hash.c:2:0:
hash.c: Cheetah.c: In function 'Update':
hash.c: Cheetah.c:220:4: warning: implicit declaration of function 'Cheetah25664' [-Wimplicit-function-declaration]
hash.c: Cheetah25664(&Te0,&T640,&state->core, data, totLength);
hash.c: ^
hash.c: Cheetah.c:232:4: warning: implicit declaration of function 'Cheetah51264' [-Wimplicit-function-declaration]
hash.c: Cheetah51264(&Te0,&T640,&state->core64, data, totLength);
hash.c: ^
Cheetah512-64.s: Cheetah512-64.s: Assembler messages:
Cheetah512-64.s: Cheetah512-64.s:4992: Warning: zero assumed for missing expression

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -O -fomit-frame-pointer asm asm64
gcc -m64 -march=barcelona -Os -fomit-frame-pointer asm asm64