Implementation notes: x86, thoth, crypto_aead/aes128n12t8silcv2

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aes128n12t8silcv2
TimeImplementationCompilerBenchmark dateSUPERCOP version
270845refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016072620160724
283935refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016072620160724
336891refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016072620160724
349943refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016072620160724
398391refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016072620160724

Compiler output

Implementation: crypto_aead/aes128n12t8silcv2/aesni
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
encrypt.c: In file included from encrypt.c:41:
encrypt.c: ./aes.h:28:22: error: always_inline function '_mm_load_si128' requires target feature 'sse2', but would be inlined into function 'AES128_KeyExpansion' that is compiled without support for 'sse2'
encrypt.c: roundkeys[0] = x0 = LOAD(userkey);
encrypt.c: ^
encrypt.c: encrypt.c:25:25: note: expanded from macro 'LOAD'
encrypt.c: #define LOAD(p) _mm_load_si128((__m128i *)(p)) /* load 128-bit word from memory address p, on the tested machine, the first byte appears as LSB */
encrypt.c: ^
encrypt.c: In file included from encrypt.c:41:
encrypt.c: ./aes.h:29:7: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'AES128_KeyExpansion' that is compiled without support for 'sse2'
encrypt.c: x2 = _mm_setzero_si128();
encrypt.c: ^
encrypt.c: ./aes.h:30:2: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c: EXPAND_ASSIST(x0, x1, x2, x0, 1); roundkeys[1] = x0;
encrypt.c: ^
encrypt.c: ./aes.h:13:7: note: expanded from macro 'EXPAND_ASSIST'
encrypt.c: v2 = _mm_aeskeygenassist_si128(v4, aes_const); \
encrypt.c: ^
encrypt.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/__wmmintrin_aes.h:62:12: note: expanded from macro '_mm_aeskeygenassist_si128'
encrypt.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
encrypt.c: ^
encrypt.c: In file included from encrypt.c:41:
encrypt.c: ./aes.h:30:2: error: always_inline function '_mm_castps_si128' requires target feature 'sse2', but would be inlined into function 'AES128_KeyExpansion' that is compiled without support for 'sse2'
encrypt.c: ./aes.h:14:7: note: expanded from macro 'EXPAND_ASSIST'
encrypt.c: v3 = _mm_castps_si128(_mm_shuffle_ps(_mm_castsi128_ps(v3), \
encrypt.c: ^
encrypt.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/aes128n12t8silcv2/aesni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
encrypt.c: In file included from encrypt.c:41:0:
encrypt.c: aes.h: In function 'AES128_KeyExpansion':
encrypt.c: aes.h:28:20: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
encrypt.c: roundkeys[0] = x0 = LOAD(userkey);
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
encrypt.c: from encrypt.c:5:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1286:1: error: inlining failed in call to always_inline '_mm_xor_si128': target specific option mismatch
encrypt.c: _mm_xor_si128 (__m128i __A, __m128i __B)
encrypt.c: ^
encrypt.c: In file included from encrypt.c:41:0:
encrypt.c: aes.h:21:5: error: called from here
encrypt.c: v1 = _mm_xor_si128(v1, v2); \
encrypt.c: ^
encrypt.c: aes.h:39:2: note: in expansion of macro 'EXPAND_ASSIST'
encrypt.c: EXPAND_ASSIST(x0, x1, x2, x0, 54); roundkeys[10] = x0;
encrypt.c: ^
encrypt.c: In file included from /usr/lib/gcc/i686-linux-gnu/5/include/xmmintrin.h:1249:0,
encrypt.c: from encrypt.c:5:
encrypt.c: /usr/lib/gcc/i686-linux-gnu/5/include/emmintrin.h:1415:1: error: inlining failed in call to always_inline '_mm_shuffle_epi32': target specific option mismatch
encrypt.c: _mm_shuffle_epi32 (__m128i __A, const int __mask)
encrypt.c: ^
encrypt.c: In file included from encrypt.c:41:0:
encrypt.c: aes.h:20:5: error: called from here
encrypt.c: v2 = _mm_shuffle_epi32(v2, 255); \
encrypt.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