Implementation notes: amd64, utrecht, crypto_aead/lakekeyakv2

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: lakekeyakv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
37503asmX86-64shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
37683Nehalemgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
37827generic64lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
37845asmX86-64shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
38070Nehalemgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
38142Nehalemgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
38322asmX86-64shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
40284Nehalemgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
45918generic64lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
46017generic64lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
48735generic64lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
50049asmX86-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
50121asmX86-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
50607asmX86-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
51255asmX86-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
56214asmX86-64shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
57942generic64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
64746generic64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
86886generic64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
90009generic64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
107505compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
146961generic32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
191772generic32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
193311generic32lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
206370generic32lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
206505generic32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
208692compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
212580compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
219915generic32lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
221184generic32lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
221472generic32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
239301referencegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
241515compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
728145referencegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
763254referencegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
1338138refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
1556541referencegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
2077731refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
2587617reference32bitsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
2678400reference32bitsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
2801979reference32bitsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
3562551refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
3657771reference32bitsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
4269852refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731

Test failure

Implementation: crypto_aead/lakekeyakv2/SandyBridge
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
error 111

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

Compiler output

Implementation: crypto_aead/lakekeyakv2/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/lakekeyakv2/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/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

Compiler output

Implementation: crypto_aead/lakekeyakv2/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