Implementation notes: amd64, waldorf, crypto_aead/aes128poetv1aes4

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_aead
Primitive: aes128poetv1aes4
TimeImplementationCompilerBenchmark dateSUPERCOP version
5659996refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
47581260refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
50876424refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
96886120refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715
104984648refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_aead/aes128poetv1aes4/ni
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
aes-ni.c: In file included from aes-ni.c:1:
aes-ni.c: In file included from ./aes-ni.h:4:
aes-ni.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
aes-ni.c: # error "AES/PCLMUL instructions not enabled"
aes-ni.c: ^
aes-ni.c: In file included from aes-ni.c:1:
aes-ni.c: ./aes-ni.h:1:9: warning: '_AESNI_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
aes-ni.c: #ifndef _AESNI_H_
aes-ni.c: ^~~~~~~~~
aes-ni.c: ./aes-ni.h:2:9: note: '_AESNI_HL_' is defined here; did you mean '_AESNI_H_'?
aes-ni.c: #define _AESNI_HL_
aes-ni.c: ^~~~~~~~~~
aes-ni.c: _AESNI_H_
aes-ni.c: aes-ni.c:6:15: warning: implicit declaration of function '_mm_aesimc_si128' is invalid in C99 [-Wimplicit-function-declaration]
aes-ni.c: dec_key[9] = _mm_aesimc_si128(enc_key[1]);
aes-ni.c: ^
aes-ni.c: aes-ni.c:6:13: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aes-ni.c: dec_key[9] = _mm_aesimc_si128(enc_key[1]);
aes-ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aes-ni.c: aes-ni.c:7:13: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aes-ni.c: dec_key[8] = _mm_aesimc_si128(enc_key[2]);
aes-ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aes-ni.c: aes-ni.c:8:13: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aes-ni.c: dec_key[7] = _mm_aesimc_si128(enc_key[3]);
aes-ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aes-ni.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ni

Compiler output

Implementation: crypto_aead/aes128poetv1aes4/ref
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:5:
encrypt.c: ./poet.h:1:9: warning: '_POET_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
encrypt.c: #ifndef _POET_H_
encrypt.c: ^~~~~~~~
encrypt.c: ./poet.h:2:9: note: '_POET_HL_' is defined here; did you mean '_POET_H_'?
encrypt.c: #define _POET_HL_
encrypt.c: ^~~~~~~~~
encrypt.c: _POET_H_
encrypt.c: 1 warning generated.
poet.c: In file included from poet.c:7:
poet.c: ./poet.h:1:9: warning: '_POET_H_' is used as a header guard here, followed by #define of a different macro [-Wheader-guard]
poet.c: #ifndef _POET_H_
poet.c: ^~~~~~~~
poet.c: ./poet.h:2:9: note: '_POET_HL_' is defined here; did you mean '_POET_H_'?
poet.c: #define _POET_HL_
poet.c: ^~~~~~~~~
poet.c: _POET_H_
poet.c: 1 warning generated.

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_aead/aes128poetv1aes4/ni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aes-ni.c: In file included from aes-ni.h:4:0,
aes-ni.c: from aes-ni.c:1:
aes-ni.c: aes-ni.c: In function 'AES_Key_Dec':
aes-ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:77:1: error: inlining failed in call to always_inline '_mm_aesimc_si128': target specific option mismatch
aes-ni.c: _mm_aesimc_si128 (__m128i __X)
aes-ni.c: ^
aes-ni.c: aes-ni.c:6:15: error: called from here
aes-ni.c: dec_key[9] = _mm_aesimc_si128(enc_key[1]);
aes-ni.c: ^
aes-ni.c: In file included from aes-ni.h:4:0,
aes-ni.c: from aes-ni.c:1:
aes-ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:77:1: error: inlining failed in call to always_inline '_mm_aesimc_si128': target specific option mismatch
aes-ni.c: _mm_aesimc_si128 (__m128i __X)
aes-ni.c: ^
aes-ni.c: aes-ni.c:7:15: error: called from here
aes-ni.c: dec_key[8] = _mm_aesimc_si128(enc_key[2]);
aes-ni.c: ^
aes-ni.c: In file included from aes-ni.h:4:0,
aes-ni.c: from aes-ni.c:1:
aes-ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:77:1: error: inlining failed in call to always_inline '_mm_aesimc_si128': target specific option mismatch
aes-ni.c: _mm_aesimc_si128 (__m128i __X)
aes-ni.c: ^
aes-ni.c: aes-ni.c:8:15: error: called from here
aes-ni.c: dec_key[7] = _mm_aesimc_si128(enc_key[3]);
aes-ni.c: ^
aes-ni.c: ...

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