Implementation notes: amd64, waldorf, crypto_aead/aezv3

Computer: waldorf
Architecture: amd64
CPU ID: GenuineIntel-000106e5-bfebfbff
SUPERCOP version: 20160715
Operation: crypto_aead
Primitive: aezv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
2524656refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016071820160715
2721916refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016071820160715
3248104refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016071820160715
3440776refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016071820160715
3816212refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016071820160715

Compiler output

Implementation: crypto_aead/aezv3/aesni
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
aez_ni.c: In file included from aez_ni.c:39:
aez_ni.c: /usr/include/clang/3.5.0/include/wmmintrin.h:30:3: error: "AES/PCLMUL instructions not enabled"
aez_ni.c: # error "AES/PCLMUL instructions not enabled"
aez_ni.c: ^
aez_ni.c: aez_ni.c:91:10: warning: implicit declaration of function '_mm_aesenc_si128' is invalid in C99 [-Wimplicit-function-declaration]
aez_ni.c: in = _mm_aesenc_si128 (in,key[0]);
aez_ni.c: ^
aez_ni.c: aez_ni.c:91:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[0]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c:92:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[1]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c:93:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[2]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c:94:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[0]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c:95:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[1]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c:96:8: error: assigning to '__m128i' (vector of 2 'long long' values) from incompatible type 'int'
aez_ni.c: in = _mm_aesenc_si128 (in,key[2]);
aez_ni.c: ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
aez_ni.c: ...

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

Compiler output

Implementation: crypto_aead/aezv3/aesni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
aez_ni.c: In file included from aez_ni.c:39:0:
aez_ni.c: aez_ni.c: In function 'aes':
aez_ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
aez_ni.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
aez_ni.c: ^
aez_ni.c: aez_ni.c:91:8: error: called from here
aez_ni.c: in = _mm_aesenc_si128 (in,key[0]);
aez_ni.c: ^
aez_ni.c: In file included from aez_ni.c:39:0:
aez_ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
aez_ni.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
aez_ni.c: ^
aez_ni.c: aez_ni.c:92:8: error: called from here
aez_ni.c: in = _mm_aesenc_si128 (in,key[1]);
aez_ni.c: ^
aez_ni.c: In file included from aez_ni.c:39:0:
aez_ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
aez_ni.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
aez_ni.c: ^
aez_ni.c: aez_ni.c:93:8: error: called from here
aez_ni.c: in = _mm_aesenc_si128 (in,key[2]);
aez_ni.c: ^
aez_ni.c: In file included from aez_ni.c:39:0:
aez_ni.c: /usr/lib/gcc/x86_64-linux-gnu/4.9/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
aez_ni.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
aez_ni.c: ...

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