Implementation notes: amd64, utrecht, crypto_aead/oceankeyakv2

Computer: utrecht
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: oceankeyakv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
45936Nehalemgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
46530SandyBridgegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
46737Nehalemgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
46827Nehalemgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
47277SandyBridgegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
47349SandyBridgegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
48771Nehalemgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
50841SandyBridgegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
52488asmX86-64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
53262asmX86-64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
53874asmX86-64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
53982asmX86-64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
58653asmX86-64shldgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
59589asmX86-64shldgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
60237asmX86-64shldgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
60264asmX86-64shldgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
70101generic64gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
90594generic64gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
90873generic64gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
92943generic64lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
94122generic64gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
108180generic64lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
109278generic64lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
115578generic64lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
217215generic32lcgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
274626compactgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
296793generic32lcgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
308529generic32lcgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
325998generic32gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
332316generic32lcgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
364761referencegcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
445761generic32gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
462978generic32gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
487854compactgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
488025compactgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
488970compactgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
498717generic32gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
1125135referencegcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
1180314referencegcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
2001276refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
2418588referencegcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
3183039refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
3598344reference32bitsgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080520160731
4254552reference32bitsgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
5330295refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080520160731
5687163reference32bitsgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080520160731
6422220refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731
8217441reference32bitsgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080520160731

Compiler output

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