Implementation notes: x86, thoth, crypto_aead/aes128otrsv3

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aes128otrsv3
TimeImplementationCompilerBenchmark dateSUPERCOP version
203903refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724
205938refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
238839refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
265977refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
279614refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724

Compiler output

Implementation: crypto_aead/aes128otrsv3/ni_p7m2
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:349:20: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'Setup' that is compiled without support for 'sse2'
encrypt.c: const block cst = _mm_setzero_si128();
encrypt.c: ^
encrypt.c: 1 error generated.

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

Compiler output

Implementation: crypto_aead/aes128otrsv3/ni_p7m1
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: encrypt.c:351:20: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'Setup' that is compiled without support for 'sse2'
encrypt.c: const block cst = _mm_setzero_si128();
encrypt.c: ^
encrypt.c: 1 error generated.

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

Compiler output

Implementation: crypto_aead/aes128otrsv3/ni_p7m2
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c: In function 'EFunc':
encrypt.c: encrypt.c:372:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
encrypt.c: {
encrypt.c: ^
encrypt.c: In file included from encrypt.c:32:0:
encrypt.c: encrypt.c: In function 'AES_encrypt':
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
encrypt.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:131:9: error: called from here
encrypt.c: *out = _mm_aesenclast_si128(tmp, key[10]);
encrypt.c: ^
encrypt.c: In file included from encrypt.c:32:0:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
encrypt.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:129:6: error: called from here
encrypt.c: tmp = _mm_aesenc_si128(tmp, key[9]);
encrypt.c: ^
encrypt.c: In file included from encrypt.c:32:0:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
encrypt.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:128:6: error: called from here
encrypt.c: tmp = _mm_aesenc_si128(tmp, key[8]);
encrypt.c: ...

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

Compiler output

Implementation: crypto_aead/aes128otrsv3/ni_p7m1
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: encrypt.c: In function 'EFunc':
encrypt.c: encrypt.c:374:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
encrypt.c: {
encrypt.c: ^
encrypt.c: In file included from encrypt.c:33:0:
encrypt.c: encrypt.c: In function 'AES_encrypt':
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:69:1: error: inlining failed in call to always_inline '_mm_aesenclast_si128': target specific option mismatch
encrypt.c: _mm_aesenclast_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:133:9: error: called from here
encrypt.c: *out = _mm_aesenclast_si128(tmp, key[10]);
encrypt.c: ^
encrypt.c: In file included from encrypt.c:33:0:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
encrypt.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:131:6: error: called from here
encrypt.c: tmp = _mm_aesenc_si128(tmp, key[9]);
encrypt.c: ^
encrypt.c: In file included from encrypt.c:33:0:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '_mm_aesenc_si128': target specific option mismatch
encrypt.c: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.c: ^
encrypt.c: encrypt.c:130:6: error: called from here
encrypt.c: tmp = _mm_aesenc_si128(tmp, key[8]);
encrypt.c: ...

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