Implementation notes: amd64, hydra1, crypto_aead/riverkeyakv1

Computer: hydra1
Architecture: amd64
CPU ID: AuthenticAMD-00100fa0-178bfbff
SUPERCOP version: 20161220
Operation: crypto_aead
Primitive: riverkeyakv1
TimeImplementationCompilerBenchmark dateSUPERCOP version
301629refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016102320161009
302247refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016102320161009
371883refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016102320161009
371989refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016102320161009
373002refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016102320161009
373253refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016102320161009
373861refgcc -funroll-loops -O2 -fomit-frame-pointer2016102320161009
374814refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016102320161009
380095refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016102320161009
384557refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016102320161009
386485refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016102320161009
389939refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016102320161009
390090refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016102320161009
391751refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016102320161009
392042refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016102220161009
392120refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016102320161009
392360refgcc -funroll-loops -O3 -fomit-frame-pointer2016102320161009
392517refgcc -O3 -fomit-frame-pointer2016102320161009
393489refgcc -m64 -O3 -fomit-frame-pointer2016102220161009
393606refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016102320161009
394100refgcc -march=nocona -O3 -fomit-frame-pointer2016102320161009
394854refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016102320161009
394894refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016102320161009
394933refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016102320161009
395911refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016102320161009
397803refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016102220161009
398005refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016102220161009
398933refgcc -march=barcelona -O3 -fomit-frame-pointer2016102320161009
399413refgcc -march=k8 -O3 -fomit-frame-pointer2016102320161009
407643refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016102320161009
417168refgcc -funroll-loops -O -fomit-frame-pointer2016102320161009
418603refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016102320161009
420048refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016102320161009
421302refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016102320161009
421591refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016102320161009
422052refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016102320161009
581141refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016102320161009
583267refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102220161009
583270refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102220161009
584797refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102220161009
584906refclang -O3 -fomit-frame-pointer -Qunused-arguments2016102320161009
588027refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016102320161009
589610refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016102220161009
603355refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016102320161009
1399213refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016102320161009
1399408refgcc -m64 -O2 -fomit-frame-pointer2016102220161009
1408200refgcc -O2 -fomit-frame-pointer2016102320161009
1440213refgcc -march=barcelona -O2 -fomit-frame-pointer2016102320161009
1440560refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016102220161009
1442355refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016102220161009
1443716refgcc -march=k8 -O2 -fomit-frame-pointer2016102320161009
1444409refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016102320161009
1502509refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016102220161009
1502928refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016102220161009
1505224refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016102220161009
1510933refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016102320161009
1548263refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016102220161009
1963430refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016102320161009
2005246refgcc -march=nocona -O2 -fomit-frame-pointer2016102320161009
2215213refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016102320161009
2279408refgcc -march=k8 -O -fomit-frame-pointer2016102320161009
2280776refgcc -m64 -march=k8 -O -fomit-frame-pointer2016102320161009
2293534refgcc -fno-schedule-insns -O -fomit-frame-pointer2016102320161009
2302533refgcc -m64 -O -fomit-frame-pointer2016102220161009
2302563refgcc -O -fomit-frame-pointer2016102320161009
2333232refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016102220161009
2341790refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016102220161009
2346139refgcc -m64 -march=core2 -O -fomit-frame-pointer2016102220161009
2597261refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016102220161009
2601080refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016102220161009
2607437refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016102220161009
2611134refgcc -march=barcelona -O -fomit-frame-pointer2016102320161009
2803167refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016102320161009
2807687refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016102320161009
2808208refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016102320161009
2809507refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016102320161009
2811056refgcc -funroll-loops -Os -fomit-frame-pointer2016102320161009
2813480refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016102320161009
2817247refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016102320161009
2826400refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016102320161009
2829786refgcc -march=nocona -Os -fomit-frame-pointer2016102320161009
2836686refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016102320161009
2839976refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016102320161009
2868077refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016102220161009
2868314refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016102220161009
2868392refgcc -m64 -Os -fomit-frame-pointer2016102220161009
2870290refgcc -march=k8 -Os -fomit-frame-pointer2016102320161009
2870296refgcc -march=barcelona -Os -fomit-frame-pointer2016102320161009
2870317refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016102220161009
2870383refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016102220161009
2870411refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016102220161009
2870966refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016102220161009
2872480refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016102320161009
2873663refgcc -Os -fomit-frame-pointer2016102320161009
2881647refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016102320161009
2983067refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016102320161009
4086961refgcc -march=nocona -O -fomit-frame-pointer2016102320161009
4087616refgcc -m64 -march=nocona -O -fomit-frame-pointer2016102320161009
10802926refgcc -funroll-loops2016102320161009
10812758refgcc2016102320161009
10819776refcc2016102320161009

Test failure

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: gcc -m64 -march=core2 -O3 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: cc
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:85:9: note: in expansion of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: KeccakF_StateXORPermuteExtract(instance->gt;state, sigmaBegin, sigmaBeginByteLen/KeccakF_laneInBytes,
KeccakDuplex.c: ^

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

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
KeccakDuplex.c: KeccakDuplex.c:63:9: warning: implicit declaration of function 'KeccakP800_12_StatePermute' is invalid in C99 [-Wimplicit-function-declaration]
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^
KeccakDuplex.c: ./KeccakF-interface.h:53:30: note: expanded from macro 'KeccakF_StatePermute'
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:85:9: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' is invalid in C99 [-Wimplicit-function-declaration]
KeccakDuplex.c: KeccakF_StateXORPermuteExtract(instance->gt;state, sigmaBegin, sigmaBeginByteLen/KeccakF_laneInBytes,
KeccakDuplex.c: ^
KeccakDuplex.c: ./KeccakF-interface.h:73:40: note: expanded from macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: 2 warnings generated.

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

Compiler output

Implementation: crypto_aead/riverkeyakv1/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:85:9: note: in expansion of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: KeccakF_StateXORPermuteExtract(instance->gt;state, sigmaBegin, sigmaBeginByteLen/KeccakF_laneInBytes,
KeccakDuplex.c: ^
KeccakDuplex.c: In file included from KeccakDuplex.h:17:0,
KeccakDuplex.c: from KeccakDuplex.c:15:
KeccakDuplex.c: KeccakDuplex.c: In function 'Keccak_Duplexing':
KeccakDuplex.c: KeccakF-interface.h:53:30: warning: implicit declaration of function 'KeccakP800_12_StatePermute' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StatePermute KeccakP800_12_StatePermute
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:63:9: note: in expansion of macro 'KeccakF_StatePermute'
KeccakDuplex.c: KeccakF_StatePermute(instance->gt;state);
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakF-interface.h:73:40: warning: implicit declaration of function 'KeccakP800_12_StateXORPermuteExtract' [-Wimplicit-function-declaration]
KeccakDuplex.c: #define KeccakF_StateXORPermuteExtract KeccakP800_12_StateXORPermuteExtract
KeccakDuplex.c: ^
KeccakDuplex.c: KeccakDuplex.c:85:9: note: in expansion of macro 'KeccakF_StateXORPermuteExtract'
KeccakDuplex.c: KeccakF_StateXORPermuteExtract(instance->gt;state, sigmaBegin, sigmaBeginByteLen/KeccakF_laneInBytes,
KeccakDuplex.c: ^

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