Implementation notes: x86, thoth, crypto_aead/aes128poetv1aes128

Computer: thoth
Architecture: x86
CPU ID: AuthenticAMD-00000622-0183f9ff
SUPERCOP version: 20160806
Operation: crypto_aead
Primitive: aes128poetv1aes128
TimeImplementationCompilerBenchmark dateSUPERCOP version
350156refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016080720160806
388023refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016080720160806
429978refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016080720160806
437985refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016080720160806
492714refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016080720160806

Compiler output

Implementation: crypto_aead/aes128poetv1aes128/ni
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
poet.c: poet.c:445:21: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'keysetup' that is compiled without support for 'sse2'
poet.c: k = aes_encrypt(zero, expanded_key);
poet.c: ^
poet.c: poet.c:143:24: note: expanded from macro 'zero'
poet.c: #define zero _mm_setzero_si128()
poet.c: ^
poet.c: poet.c:450:26: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'keysetup' that is compiled without support for 'sse2'
poet.c: ctx->gt;l = aes_encrypt(one, expanded_key);
poet.c: ^
poet.c: poet.c:144:40: note: expanded from macro 'one'
poet.c: #define one _mm_insert_epi8(zero, 1, 15)
poet.c: ^
poet.c: poet.c:143:24: note: expanded from macro 'zero'
poet.c: #define zero _mm_setzero_si128()
poet.c: ^
poet.c: poet.c:452:25: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'keysetup' that is compiled without support for 'sse2'
poet.c: k_axu = aes_encrypt(two, expanded_key);
poet.c: ^
poet.c: poet.c:145:40: note: expanded from macro 'two'
poet.c: #define two _mm_insert_epi8(zero, 2, 15)
poet.c: ^
poet.c: poet.c:143:24: note: expanded from macro 'zero'
poet.c: #define zero _mm_setzero_si128()
poet.c: ^
poet.c: poet.c:455:25: error: always_inline function '_mm_setzero_si128' requires target feature 'sse2', but would be inlined into function 'keysetup' that is compiled without support for 'sse2'
poet.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/aes128poetv1aes128/ni
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
poet.c: poet.c: In function 'aes_keygen_assist':
poet.c: poet.c:58:1: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
poet.c: {
poet.c: ^
poet.c: poet.c: In function 'encrypt_length':
poet.c: poet.c:540:24: warning: implicit declaration of function '_mm_insert_epi64' [-Wimplicit-function-declaration]
poet.c: return aes_encrypt(_mm_insert_epi64(zero, 8 * len, 0), key);
poet.c: ^
poet.c: poet.c:540:24: error: incompatible type for argument 1 of 'aes_encrypt'
poet.c: poet.c:124:23: note: expected '__m128i {aka __vector(2) long long int}' but argument is of type 'int'
poet.c: static inline __m128i aes_encrypt(__m128i in, __m128i* k)
poet.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