Implementation notes: amd64, intelnuci8, crypto_core/aes256decrypt

Computer: intelnuci8
Architecture: amd64
CPU ID: GenuineIntel-000906e9-bfebfbff
SUPERCOP version: 20191221
Operation: crypto_core
Primitive: aes256decrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
215648 0 013929 776 776dolbeau/aesenc-intclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
216648 0 013913 776 776dolbeau/aesenc-intclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
216648 0 013913 776 776dolbeau/aesenc-intclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
217675 0 014806 776 832dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
248682 0 010375 768 760dolbeau/aesenc-intclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
256801 0 011501 768 832dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
256788 0 010633 752 800dolbeau/aesenc-intgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
260791 0 011533 768 832dolbeau/aesenc-intgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
61811569 0 024137 776 760dolbeau/std-4rt-nodkclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
6297559 0 018285 768 832dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6327548 0 021670 776 832dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
63711661 0 022397 768 832dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6395450 0 016189 768 832dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
64311657 0 022429 768 832dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
64511526 0 024809 776 776dolbeau/std-4rt-nodkclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
64511526 0 024793 776 776dolbeau/std-4rt-nodkclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
64511517 0 021207 768 760dolbeau/std-4rt-nodkclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
6517519 0 018301 768 832dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6575522 0 019646 776 832dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6597606 0 017481 752 800dolbeau/std-2rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
66111688 0 021561 752 800dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
66511526 0 024793 776 776dolbeau/std-4rt-nodkclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
66511731 0 025854 776 832dolbeau/std-4rt-nodkgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6695545 0 015417 752 800dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
6735492 0 016269 768 832dolbeau/std-1rt-nodkgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
7087494 0 020777 776 776dolbeau/std-2rt-nodkclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7087494 0 020761 776 776dolbeau/std-2rt-nodkclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7097483 0 017175 768 760dolbeau/std-2rt-nodkclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7097673 0 020233 776 760dolbeau/std-2rt-nodkclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7187494 0 020761 776 776dolbeau/std-2rt-nodkclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7215583 0 018137 776 760dolbeau/std-1rt-nodkclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7265442 0 018729 776 776dolbeau/std-1rt-nodkclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7285442 0 018713 776 776dolbeau/std-1rt-nodkclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7325442 0 018713 776 776dolbeau/std-1rt-nodkclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
7335443 0 015127 768 760dolbeau/std-1rt-nodkclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1345132 0 013611 792 776opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1345132 0 012891 792 760opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1346187 0 011112 800 800opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
1348132 0 013611 792 776opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1348132 0 010025 784 760opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1350132 0 013611 792 776opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
1352187 0 014537 808 800opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
1352189 0 010228 784 800opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
1354190 0 011160 800 800opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
2844126300 0 020486 776 832refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
4868326584 0 019865 776 776refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
4876426584 0 019145 776 760refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
4896963752 0 017033 776 776refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
4905673752 0 017033 776 776refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
9373752517 0 013245 768 832refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
9462492787 0 012391 768 760refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2019120620191017
9491272384 0 013149 768 832refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017
9706162170 0 012009 752 800refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019120620191017

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: core.c:13: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-6.0/lib/clang/6.0.0/include/emmintrin.h:3561:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:14:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
core.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/emmintrin.h:3561:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: 2 warnings generated.

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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: core.c:13: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-6.0/lib/clang/6.0.0/include/emmintrin.h:3561:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:14:34: warning: incompatible pointer types passing 'const unsigned int *' to parameter of type 'const __m128i *' [-Wincompatible-pointer-types]
core.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
core.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/emmintrin.h:3561:32: note: passing argument to parameter '__p' here
core.c: _mm_loadu_si128(__m128i const *__p)
core.c: ^
core.c: core.c:72:16: error: always_inline function '_mm_aesimc_si128' requires target feature 'aes', but would be inlined into function 'aes256ni_setkey_decrypt' that is compiled without support for 'aes'
core.c: rkeys[i] = _mm_aesimc_si128(tkeys[14-i]);
core.c: ^
core.c: core.c:43:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
core.c: BLOCK1(0x01);
core.c: ^
core.c: core.c:24:11: note: expanded from macro 'BLOCK1'
core.c: temp1 = _mm_aeskeygenassist_si128(temp2, IMM); \
core.c: ^
core.c: /usr/lib/llvm-6.0/lib/clang/6.0.0/include/__wmmintrin_aes.h:147: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:44:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
core.c: ...

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

Compiler output

Implementation: dolbeau/aesenc-int
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: core.c: In function 'aes256ni_setkey_encrypt':
core.c: core.c:13: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/7/include/xmmintrin.h:1252:0,
core.c: from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:29,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:701:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
core.c: _mm_loadu_si128 (__m128i_u const *__P)
core.c: ^~~~~~~~~~~~~~~
core.c: core.c:14:34: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type [-Wincompatible-pointer-types]
core.c: __m128i key1 = _mm_loadu_si128((const unsigned int *)(key+16));
core.c: ^
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
core.c: from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:29,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:701:1: note: expected 'const __vector(2) long long int *' but argument is of type 'const unsigned int *'
core.c: _mm_loadu_si128 (__m128i_u const *__P)
core.c: ^~~~~~~~~~~~~~~

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