Implementation notes: amd64, utrecht, crypto_aead/lunarkeyakv2

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: lunarkeyakv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
77256Nehalemgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
77562Nehalemgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
78588SandyBridgegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
78849SandyBridgegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
79848Nehalemgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
81117SandyBridgegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
82899Nehalemgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
85923SandyBridgegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
87930asmX86-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
88866asmX86-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
90405asmX86-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
90495asmX86-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
98973asmX86-64shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
99855asmX86-64shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
100431generic64lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
101259asmX86-64shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
115308generic64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
121185generic64lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
122985generic64lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
128241generic64lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
151560asmX86-64shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
152739generic64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
153540generic64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
158355generic64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
284571compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
352764generic32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
352818generic32lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
499509generic32lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
500400generic32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
507267generic32lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
507276generic32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
548541generic32lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
548784generic32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
558801compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
562725compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
571860compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
924219referencegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
1923867referencegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
2013264referencegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
3281688refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
5227119refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
6178662reference32bitsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
6213681referencegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
8925579reference32bitsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
8993178refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
10540224reference32bitsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
10977165refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
13680522reference32bitsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731

Compiler output

Implementation: crypto_aead/lunarkeyakv2/KnightsLanding
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-AVX512.c: In file included from KeccakP-1600-AVX512.c:24:0:
KeccakP-1600-AVX512.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled"
KeccakP-1600-AVX512.c: # error "SSE4.1 instruction set not enabled"
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: In file included from KeccakP-1600-AVX512.c:25:0:
KeccakP-1600-AVX512.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
KeccakP-1600-AVX512.c: # error "AES/PCLMUL instructions not enabled"
KeccakP-1600-AVX512.c: ^
KeccakP-1600-AVX512.c: KeccakP-1600-AVX512.c:203:1: error: unknown type name '__m512i'
KeccakP-1600-AVX512.c: typedef __m512i V512;
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/lunarkeyakv2/Bulldozer
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c: In function 'KeccakP1600_Permute_12rounds':
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:402:5: error: incompatible type for argument 2 of '_mm_xor_si128'
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.8/include/xmmintrin.h:1246:0,
KeccakP-1600-XOP.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
KeccakP-1600-XOP.c: from KeccakP-1600-XOP.c:32:
KeccakP-1600-XOP.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:1264:1: note: expected '__m128i' but argument is of type 'int'
KeccakP-1600-XOP.c: _mm_xor_si128 (__m128i __A, __m128i __B)
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:402:5: error: incompatible type for argument 2 of '_mm_xor_si128'
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.8/include/xmmintrin.h:1246:0,
KeccakP-1600-XOP.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
KeccakP-1600-XOP.c: from KeccakP-1600-XOP.c:32:
KeccakP-1600-XOP.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/emmintrin.h:1264:1: note: expected '__m128i' but argument is of type 'int'
KeccakP-1600-XOP.c: _mm_xor_si128 (__m128i __A, __m128i __B)
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:402:5: error: can't convert between vector values of different size
KeccakP-1600-XOP.c: rounds12
KeccakP-1600-XOP.c: ^
KeccakP-1600-XOP.c: KeccakP-1600-XOP.c:402:5: error: incompatible type for argument 2 of '_mm_xor_si128'
KeccakP-1600-XOP.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/xmmintrin.h:1246:0,
KeccakP-1600-XOP.c: from /usr/lib/gcc/x86_64-linux-gnu/4.8/include/x86intrin.h:34,
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/lunarkeyakv2/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

Compiler output

Implementation: crypto_aead/lunarkeyakv2/Haswell
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
KeccakP-1600-times4-SIMD256.c: In file included from KeccakP-1600-times4-SIMD256.c:19:0:
KeccakP-1600-times4-SIMD256.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/smmintrin.h:31:3: error: #error "SSE4.1 instruction set not enabled"
KeccakP-1600-times4-SIMD256.c: # error "SSE4.1 instruction set not enabled"
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: In file included from KeccakP-1600-times4-SIMD256.c:20:0:
KeccakP-1600-times4-SIMD256.c: /usr/lib/gcc/x86_64-linux-gnu/4.8/include/wmmintrin.h:34:3: error: #error "AES/PCLMUL instructions not enabled"
KeccakP-1600-times4-SIMD256.c: # error "AES/PCLMUL instructions not enabled"
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:35:1: error: unknown type name '__m256i'
KeccakP-1600-times4-SIMD256.c: typedef __m256i V256;
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c: In function 'KeccakP1600times4_AddLanesAll':
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:58:67: error: '__m256' undeclared (first use in this function)
KeccakP-1600-times4-SIMD256.c: #define PERM128( a, b, c ) (V256)_mm256_permute2f128_ps((__m256)(a), (__m256)(b), c)
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:70:48: note: in expansion of macro 'PERM128'
KeccakP-1600-times4-SIMD256.c: #define INTLEAVE() lanesL01 = PERM128( lanes0, lanes2, 0x20 ), \
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:139:33: note: in expansion of macro 'INTLEAVE'
KeccakP-1600-times4-SIMD256.c: INTLEAVE(),\
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:146:9: note: in expansion of macro 'Xor_In4'
KeccakP-1600-times4-SIMD256.c: Xor_In4( 0 );
KeccakP-1600-times4-SIMD256.c: ^
KeccakP-1600-times4-SIMD256.c: KeccakP-1600-times4-SIMD256.c:58:67: note: each undeclared identifier is reported only once for each function it appears in
KeccakP-1600-times4-SIMD256.c: ...

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