Implementation notes: amd64, slide, crypto_aead/lakekeyakv2

Computer: slide
Architecture: amd64
CPU ID: GenuineIntel-00040651-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: lakekeyakv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
26808generic64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
27692generic64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
28068asmX86-64shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
28108asmX86-64shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
28120asmX86-64shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
28176generic64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
28392asmX86-64shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
29220generic64lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
29232SandyBridgegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
29396asmX86-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
29412SandyBridgegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
29496asmX86-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
29660SandyBridgegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
29672SandyBridgegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
29752asmX86-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
29760generic64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
29852asmX86-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
30236generic64lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
30512generic64lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
30580Nehalemgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
30968Nehalemgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
30976Nehalemgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
30996Nehalemgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
31608Haswellgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
31696Haswellgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
31744Haswellgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
31868generic64lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
36356Haswellgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
73676compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
75452generic32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
76408generic32lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
89596generic32lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
89840generic32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
93336generic32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
93768generic32lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
95884generic32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
95944generic32lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
135024compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
137036compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
144160compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
170988referencegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
461704referencegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
490608referencegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
1052004reference32bitsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016090620160806
1392128referencegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806
1656882reference32bitsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016090620160806
1690376reference32bitsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016090620160806
2922708reference32bitsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016090620160806

Compiler output

Implementation: crypto_aead/lakekeyakv2/KnightsLanding
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c: In function 'KeccakP1600_Permute_12rounds':
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:292:7: warning: AVX512F vector return without AVX512F enabled changes the ABI [-Wpsabi]
KeccakP-1600-AVX512.c: V512 moveThetaPrev = _mm512_setr_epi64(4, 0, 1, 2, 3, 5, 6, 7); \
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:476:5: note: in expansion of macro 'KeccakP_DeclareVars'
KeccakP-1600-AVX512.c: KeccakP_DeclareVars
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:45:0,
KeccakP-1600-AVX512.c: from KeccakP-1600-AVX512.c:26:
KeccakP-1600-AVX512.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx512fintrin.h:56:1: error: inlining failed in call to always_inline '_mm512_set_epi64': target specific option mismatch
KeccakP-1600-AVX512.c: _mm512_set_epi64 (long long __A, long long __B, long long __C,
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:292:7: error: called from here
KeccakP-1600-AVX512.c: V512 moveThetaPrev = _mm512_setr_epi64(4, 0, 1, 2, 3, 5, 6, 7); \
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:476:5: note: in expansion of macro 'KeccakP_DeclareVars'
KeccakP-1600-AVX512.c: KeccakP_DeclareVars
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/immintrin.h:45:0,
KeccakP-1600-AVX512.c: from KeccakP-1600-AVX512.c:26:
KeccakP-1600-AVX512.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/avx512fintrin.h:56:1: error: inlining failed in call to always_inline '_mm512_set_epi64': target specific option mismatch
KeccakP-1600-AVX512.c: _mm512_set_epi64 (long long __A, long long __B, long long __C,
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:293:7: error: called from here
KeccakP-1600-AVX512.c: V512 moveThetaNext = _mm512_setr_epi64(1, 2, 3, 4, 0, 5, 6, 7); \
KeccakP-1600-AVX512.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv KnightsLanding
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv KnightsLanding
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv KnightsLanding
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv KnightsLanding

Compiler output

Implementation: crypto_aead/lakekeyakv2/Bulldozer
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-XOP.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:52:0,
KeccakP-1600-XOP.c: from KeccakP-1600-XOP.c:32:
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c: In function 'KeccakP1600_Permute_12rounds':
KeccakP-1600-XOP.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xopintrin.h:266:1: error: inlining failed in call to always_inline '_mm_roti_epi64': target specific option mismatch
KeccakP-1600-XOP.c: _mm_roti_epi64(__m128i __A, const int __B)
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:48:29: error: called from here
KeccakP-1600-XOP.c: #define XOR128(a, b) _mm_xor_si128(a, b)
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:187:11: note: in expansion of macro 'XOR128'
KeccakP-1600-XOP.c: Dei = XOR128(Cae, ROL6464same(Cio, 1)); \
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:200:5: note: in expansion of macro 'computeD'
KeccakP-1600-XOP.c: computeD \
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-unrolling.macros:46:5: note: in expansion of macro 'thetaRhoPiChiIotaPrepareTheta'
KeccakP-1600-XOP.c: thetaRhoPiChiIotaPrepareTheta(12, A, E) \
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:402:5: note: in expansion of macro 'rounds12'
KeccakP-1600-XOP.c: rounds12
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:52:0,
KeccakP-1600-XOP.c: from KeccakP-1600-XOP.c:32:
KeccakP-1600-XOP.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xopintrin.h:266:1: error: inlining failed in call to always_inline '_mm_roti_epi64': target specific option mismatch
KeccakP-1600-XOP.c: _mm_roti_epi64(__m128i __A, const int __B)
KeccakP-1600-XOP.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv Bulldozer
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv Bulldozer
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv Bulldozer
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv Bulldozer

Compiler output

Implementation: crypto_aead/lakekeyakv2/AVR8
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s: Assembler messages:
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:2: Error: no such instruction: `implementation by the Keccak,Keyak and Ketje Teams,namely,Guido Bertoni,'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:3: Error: no such instruction: `joan Daemen,Michaƫl Peeters,Gilles Van Assche and Ronny Van Keer,hereby'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:4: Error: no such instruction: `denoted as "the implementer".'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:6: Error: no such instruction: `for more information,feedback or questions,please refer to our websites:'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:11: Error: no such instruction: `to the extent possible under law,the implementer has waived all copyright'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:12: Error: junk `or neighboring rights to the source code in this file.' after expression
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:12: Error: number of operands mismatch for `and'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:16: Error: no such instruction: `tested on ATmega1280 simulator'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:18: Error: no such instruction: `registers used in all routines'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:26: Error: junk at end of line, first unrecognized character is `-'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:28: Error: no such instruction: `void KeccakP1600_StaticInitialize( void)'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:32: Error: junk at end of line, first unrecognized character is `-'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:34: Error: no such instruction: `void KeccakP1600_Initialize(void *state)'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:36: Error: no such instruction: `argument state is passed in r24:r25'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:40: Error: too many memory references for `mov'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:41: Error: no such instruction: `ldi r23,5*5'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:41: Error: no such instruction: `clear state (8 bytes/1 lane per iteration)'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:43: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:44: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:45: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:46: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:47: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:48: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: KeccakP-1600-avr8-fast.s:49: Error: no such instruction: `st z+,zero'
KeccakP-1600-avr8-fast.s: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv AVR8
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv AVR8
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv AVR8
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv AVR8