Implementation notes: amd64, hydra5, crypto_core/aes128encrypt

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240107
Operation: crypto_core
Primitive: aes128encrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4357022 0 021000 860 928T:dolbeau/std-4ftclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4357022 0 021000 860 928T:dolbeau/std-4ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4366164 0 017912 860 928T:dolbeau/std-4ftclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4377070 0 021637 804 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4396164 0 019248 860 928T:dolbeau/std-4ftclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4426197 0 017186 852 928T:dolbeau/std-4ftclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4446334 0 019597 804 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4494282 0 017549 804 992T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4495050 0 019621 804 992T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4496359 0 018812 796 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4526315 0 017680 780 960T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4573096 0 016176 860 928T:dolbeau/std-1ftclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4604138 0 017232 860 928T:dolbeau/std-2ftclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4643096 0 014840 860 928T:dolbeau/std-1ftclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4664138 0 015896 860 928T:dolbeau/std-2ftclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4674009 0 018597 804 992T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4704862 0 018824 860 928T:dolbeau/std-2ftclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4704862 0 018824 860 928T:dolbeau/std-2ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4713269 0 016525 804 992T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4723844 0 017800 860 928T:dolbeau/std-1ftclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4753844 0 017800 860 928T:dolbeau/std-1ftclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4784313 0 016764 796 992T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4793221 0 014576 780 960T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
4794163 0 015138 852 928T:dolbeau/std-2ftclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4913130 0 014114 852 928T:dolbeau/std-1ftclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
4913305 0 015772 796 992T:dolbeau/std-1ftgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
5014291 0 015632 780 960T:dolbeau/std-2ftgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
739225 0 013686 836 960T:opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
741140 0 013378 876 928T:opensslclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
743227 0 011769 812 960T:opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
745140 0 014266 876 928T:opensslclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
752225 0 015022 836 960T:opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
756140 0 011284 868 928T:opensslclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
757140 0 014266 876 928T:opensslclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
757226 0 012901 828 960T:opensslgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
759140 0 012074 876 928T:opensslclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
2481173480 0 018045 804 992refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
3215183857 0 017776 860 928refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
3215223841 0 017776 860 928refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
5567892574 0 015624 860 928refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
8178231817 0 012786 852 928refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
9278071700 0 013424 860 928refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
10330031983 0 015213 804 992refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
10476351641 0 012968 780 960refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
11164151861 0 014300 796 992refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212

Compiler output

Implementation: dolbeau/aesenc-int
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: 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-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
core.c: ((__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R)))
core.c: ^
core.c: core.c:31:3: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
core.c: BLOCK1(0x04);
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-14/lib/clang/14.0.0/include/__wmmintrin_aes.h:136:13: note: expanded from macro '_mm_aeskeygenassist_si128'
core.c: ...

Number of similar (compiler,implementation) pairs: 5, 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
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE dolbeau/aesenc-int

Compiler output

Implementation: dolbeau/aesenc-int
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:41,
core.c: from core.c:9:
core.c: core.c: In function 'aes128ni_setkey_encrypt':
core.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_aeskeygenassist_si128': target specific option mismatch
core.c: 87 | _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:20:11: note: called from here
core.c: 20 | temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:38:3: note: in expansion of macro 'BLOCK1'
core.c: 38 | BLOCK1(0x36);
core.c: | ^~~~~~
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:41,
core.c: from core.c:9:
core.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_aeskeygenassist_si128': target specific option mismatch
core.c: 87 | _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:20:11: note: called from here
core.c: 20 | temp1 = _mm_aeskeygenassist_si128(temp0, IMM); \
core.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
core.c: core.c:37:3: note: in expansion of macro 'BLOCK1'
core.c: 37 | BLOCK1(0x1b);
core.c: | ^~~~~~
core.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:41,
core.c: from core.c:9:
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

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
core.c: core.c:12:3: warning: 'AES_set_encrypt_key' is deprecated [-Wdeprecated-declarations]
core.c: AES_set_encrypt_key(k,128,&kexp);
core.c: ^
core.c: /usr/include/openssl/aes.h:50:1: note: 'AES_set_encrypt_key' has been explicitly marked deprecated here
core.c: OSSL_DEPRECATEDIN_3_0
core.c: ^
core.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
core.c: # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
core.c: ^
core.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
core.c: # define OSSL_DEPRECATED(since) __attribute__((deprecated))
core.c: ^
core.c: core.c:13:3: warning: 'AES_encrypt' is deprecated [-Wdeprecated-declarations]
core.c: AES_encrypt(in,out,&kexp);
core.c: ^
core.c: /usr/include/openssl/aes.h:56:1: note: 'AES_encrypt' has been explicitly marked deprecated here
core.c: OSSL_DEPRECATEDIN_3_0
core.c: ^
core.c: /usr/include/openssl/macros.h:182:49: note: expanded from macro 'OSSL_DEPRECATEDIN_3_0'
core.c: # define OSSL_DEPRECATEDIN_3_0 OSSL_DEPRECATED(3.0)
core.c: ^
core.c: /usr/include/openssl/macros.h:62:52: note: expanded from macro 'OSSL_DEPRECATED'
core.c: # define OSSL_DEPRECATED(since) __attribute__((deprecated))
core.c: ^
core.c: 2 warnings generated.

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:openssl

Compiler output

Implementation: T:openssl
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
core.c: core.c: In function 'crypto_core_aes128encrypt_openssl_timingleaks':
core.c: core.c:12:3: warning: 'AES_set_encrypt_key' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
core.c: 12 | AES_set_encrypt_key(k,128,&kexp);
core.c: | ^~~~~~~~~~~~~~~~~~~
core.c: In file included from core.c:1:
core.c: /usr/include/openssl/aes.h:51:5: note: declared here
core.c: 51 | int AES_set_encrypt_key(const unsigned char *userKey, const int bits,
core.c: | ^~~~~~~~~~~~~~~~~~~
core.c: core.c:13:3: warning: 'AES_encrypt' is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
core.c: 13 | AES_encrypt(in,out,&kexp);
core.c: | ^~~~~~~~~~~
core.c: In file included from core.c:1:
core.c: /usr/include/openssl/aes.h:57:6: note: declared here
core.c: 57 | void AES_encrypt(const unsigned char *in, unsigned char *out,
core.c: | ^~~~~~~~~~~

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