Implementation notes: amd64, margaux, crypto_core/aes128encrypt

Computer: margaux
Microarchitecture: amd64; Core 2 65nm (6fb)
Architecture: amd64
CPU ID: GenuineIntel-000006fb-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_core
Primitive: aes128encrypt
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5026308 0 019301 804 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5036164 0 019243 844 928T:dolbeau/std-4ftclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5056359 0 018868 796 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5076164 0 017955 844 928T:dolbeau/std-4ftclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5076315 0 017688 780 960T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5113096 0 014883 844 928T:dolbeau/std-1ftclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5164138 0 015939 844 928T:dolbeau/std-2ftclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5194138 0 017227 844 928T:dolbeau/std-2ftclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5216197 0 017197 836 928T:dolbeau/std-4ftclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5217022 0 020995 844 928T:dolbeau/std-4ftclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5234862 0 019059 844 928T:dolbeau/std-2ftclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5243096 0 016171 844 928T:dolbeau/std-1ftclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5244862 0 018835 844 928T:dolbeau/std-2ftclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5267022 0 021219 844 928T:dolbeau/std-4ftclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5283844 0 018035 844 928T:dolbeau/std-1ftclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5303844 0 017811 844 928T:dolbeau/std-1ftclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5403130 0 014125 836 928T:dolbeau/std-1ftclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5464163 0 015165 836 928T:dolbeau/std-2ftclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
5627432 0 021565 804 992T:dolbeau/std-4ftgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
748140 0 011295 852 928T:opensslclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
750140 0 014501 860 928T:opensslclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
751140 0 014277 860 928T:opensslclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
754140 0 013389 860 928T:opensslclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
758226 0 012941 828 960T:opensslgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
759225 0 013422 836 960T:opensslgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
759225 0 014598 836 960T:opensslgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
765140 0 012101 860 928T:opensslclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
765227 0 011793 812 960T:opensslgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3194733533 0 017669 804 992refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
4110272573 0 015619 844 928refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
4904763841 0 017771 844 928refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
4905603745 0 017915 844 928refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
7554301683 0 013451 844 928refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
8189491813 0 012781 836 928refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
8215831926 0 014877 804 992refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
9327231892 0 014372 796 992refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
13228741642 0 012976 780 960refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


core.c: core.c:13:25: warning: unused variable 'temp2' [-Wunused-variable]
core.c:   __m128i temp0, temp1, temp2, temp4;
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-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: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
dolbeau/aesenc-intclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
dolbeau/aesenc-intclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
dolbeau/aesenc-intclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
dolbeau/aesenc-intclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
dolbeau/aesenc-intclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


core.c: core.c: In function 'aes128ni_setkey_encrypt':
core.c: core.c:13:25: warning: unused variable 'temp2' [-Wunused-variable]
core.c:    13 |   __m128i temp0, temp1, temp2, temp4;
core.c:       |                         ^~~~~
core.c: core.c: In function 'aes128ni_encrypt':
core.c: core.c:46: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
core.c:    46 | #pragma unroll(9)
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: 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: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
dolbeau/aesenc-intgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
dolbeau/aesenc-intgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
dolbeau/aesenc-intgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
dolbeau/aesenc-intgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


core.c: In file included from core.c:9:
core.c: stdaes-common.h:548:21: warning: 'KT3' defined but not used [-Wunused-variable]
core.c:   548 | static unsigned int KT3[256] = KT0Data;
core.c:       |                     ^~~
core.c: stdaes-common.h:541:21: warning: 'KT2' defined but not used [-Wunused-variable]
core.c:   541 | static unsigned int KT2[256] = KT0Data;
core.c:       |                     ^~~
core.c: stdaes-common.h:534:21: warning: 'KT1' defined but not used [-Wunused-variable]
core.c:   534 | static unsigned int KT1[256] = KT0Data;
core.c:       |                     ^~~
core.c: stdaes-common.h:527:21: warning: 'KT0' defined but not used [-Wunused-variable]
core.c:   527 | static unsigned int KT0[256] = KT0Data;
core.c:       |                     ^~~
core.c: stdaes-common.h:450:21: warning: 'RT3' defined but not used [-Wunused-variable]
core.c:   450 | static unsigned int RT3[256] = { RT };
core.c:       |                     ^~~
core.c: stdaes-common.h:443:21: warning: 'RT2' defined but not used [-Wunused-variable]
core.c:   443 | static unsigned int RT2[256] = { RT };
core.c:       |                     ^~~
core.c: stdaes-common.h:436:21: warning: 'RT1' defined but not used [-Wunused-variable]
core.c:   436 | static unsigned int RT1[256] = { RT };
core.c:       |                     ^~~
core.c: stdaes-common.h:429:21: warning: 'RT0' defined but not used [-Wunused-variable]
core.c:   429 | static unsigned int RT0[256] = { RT };
core.c:       |                     ^~~
core.c: ...

Number of similar (implementation,compiler) pairs: 12, namely:
ImplementationCompiler
T:dolbeau/std-1ftgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-1ftgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-1ftgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-1ftgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-2ftgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-2ftgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-2ftgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-2ftgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-4ftgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-4ftgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-4ftgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:dolbeau/std-4ftgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


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 (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:opensslclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:opensslclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:opensslclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:opensslclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:opensslclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


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 (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:opensslgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:opensslgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:opensslgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:opensslgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Passed TIMECOP


TIMECOP iterations: 1

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)