Implementation notes: amd64, h4atom, crypto_core/aes128decrypt

Computer: h4atom
Architecture: amd64
CPU ID: GenuineIntel-000106ca-bfe9fbff
SUPERCOP version: 20160806
Operation: crypto_core
Primitive: aes128decrypt
TimeImplementationCompilerBenchmark dateSUPERCOP version
1512dolbeau/std-1rt-nodkgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
1528dolbeau/std-4rt-nodkgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
1528dolbeau/std-4rt-nodkgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
1536dolbeau/std-2rt-nodkgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
1568dolbeau/std-2rt-nodkgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
1576dolbeau/std-1rt-nodkgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
1608dolbeau/std-2rt-nodkgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
1624dolbeau/std-4rt-nodkgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
1648dolbeau/std-1rt-nodkgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
1760dolbeau/std-4rt-nodkclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
1792dolbeau/std-4rt-nodkgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
1816dolbeau/std-2rt-nodkgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
1872dolbeau/std-1rt-nodkclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
1872dolbeau/std-1rt-nodkgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
1936dolbeau/std-2rt-nodkclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
2336opensslclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
2344opensslgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
2344opensslgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
2352opensslgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
2424opensslgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806
500960refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016081120160806
1445232refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016081120160806
2339912refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016081120160806
2415528refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016081120160806
2626640refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016081120160806

Compiler output

Implementation: crypto_core/aes128decrypt/dolbeau/aesenc-int
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments
core.c: core.c:12:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
core.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-3.8/bin/../lib/clang/3.8.0/include/emmintrin.h:1112:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:49:16: error: always_inline function '_mm_aesimc_si128' requires target feature 'aes', but would be inlined into function 'aes128ni_setkey_decrypt' that is compiled without support for 'aes'
core.c: rkeys[i] = _mm_aesimc_si128(tkeys[10-i]);
core.c: ^
core.c: core.c:29:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
core.c: BLOCK1(0x01);
core.c: ^
core.c: core.c:20:11: note: expanded from macro 'BLOCK1'
core.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
core.c: ^
core.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'
core.c: (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
core.c: ^
core.c: core.c:30:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
core.c: BLOCK1(0x02);
core.c: ^
core.c: core.c:20:11: note: expanded from macro 'BLOCK1'
core.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
core.c: ^
core.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'
core.c: ...

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

Compiler output

Implementation: crypto_core/aes128decrypt/dolbeau/aesenc-int
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv
core.c: core.c: In function 'aes128ni_setkey_encrypt':
core.c: core.c:12:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
core.c: __m128i key0 = _mm_loadu_si128((const unsigned int *)(key+0));
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/xmmintrin.h:1249:0,
core.c: from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:29,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/emmintrin.h:696:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
core.c: _mm_loadu_si128 (__m128i const *__P)
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:39:0,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
core.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
core.c: ^
core.c: core.c:20:9: error: called from here
core.c: temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
core.c: ^
core.c: core.c:38:3: note: in expansion of macro 'BLOCK1'
core.c: BLOCK1(0x36);
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/5/include/immintrin.h:39:0,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/5/include/wmmintrin.h:87:1: error: inlining failed in call to always_inline '_mm_aeskeygenassist_si128': target specific option mismatch
core.c: _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
core.c: ...

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