Implementation notes: amd64, utrecht, crypto_aead/seakeyakv2

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: seakeyakv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
34686Nehalemgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
35442SandyBridgegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
35478SandyBridgegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
35739SandyBridgegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
37998SandyBridgegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
41418asmX86-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
41841asmX86-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
42516asmX86-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
42714asmX86-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
46548asmX86-64shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
47304generic64lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
52731Nehalemgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
52731Nehalemgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
54981Nehalemgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
56961generic64lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
60219generic64lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
70218asmX86-64shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
70893asmX86-64shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
71415asmX86-64shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
82098generic64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
84510generic64lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
106623generic64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
107082generic64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
110718generic64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
174681generic32lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
198369compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
234306generic32lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
245628generic32lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
261522generic32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
265437generic32lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
280026referencegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
350847generic32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
368289generic32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
385065compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
385533compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
386487compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
397944generic32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
886626referencegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
930663referencegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
1642158refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
1901493referencegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
3045681reference32bitsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
3741957refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
4315356reference32bitsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
4476384reference32bitsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
5027040reference32bitsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
5074578refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
6328989refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731

Compiler output

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