Implementation notes: amd64, rumba5, crypto_aead/aes128gcmv1

Computer: rumba5
Microarchitecture: amd64; Zen (800f11)
Architecture: amd64
CPU ID: AuthenticAMD-00800f11-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes128gcmv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
11576894 0 022332 916 1088T:opensslnewclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
116111136 0 024171 900 1056T:opensslnewgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
11647889 0 021530 924 1024T:opensslnewclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
11690894 0 025074 924 1056T:opensslnewclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
11701893 0 024130 924 1024T:opensslnewclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
11725894 0 024698 924 1056T:opensslnewclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
117671159 0 023210 892 1056T:opensslnewgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
117931136 0 025419 900 1056T:opensslnewgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
118081041 0 021462 876 1056T:opensslnewgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
22236772352 0 1623509 836 1120T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
23469384377 0 1627741 804 1120T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
23499182808 0 1625731 844 1056T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
24455524541 0 1628371 844 1056T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
24669933309 0 1626763 844 1056T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
113856861827 0 1622171 844 1056T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
160372832405 0 1624517 804 1120T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
160783971896 0 1621480 780 1088T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
164449662312 0 1623460 796 1120T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


aesenc-int.c: aesenc-int.c:41:25: warning: unused variable 'temp2' [-Wunused-variable]
aesenc-int.c:   __m128i temp0, temp1, temp2, temp4;
aesenc-int.c:                         ^
aesenc-int.c: aesenc-int.c:248:17: warning: unused variable 'rev' [-Wunused-variable]
aesenc-int.c:   const __m128i rev = _mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
aesenc-int.c:                 ^
aesenc-int.c: aesenc-int.c:342:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:342:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:446:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:446:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:139:20: warning: unused function 'inc' [-Wunused-function]
aesenc-int.c: static inline void inc(unsigned char *n) {
aesenc-int.c:                    ^
aesenc-int.c: aesenc-int.c:162:1: warning: unused function 'aesni_encrypt2' [-Wunused-function]
aesenc-int.c: FUNC(2, MAKE2)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:149:22: note: expanded from macro 'FUNC'
aesenc-int.c: ...

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

Compiler output


aesenc-int.c: aesenc-int.c:41:25: warning: unused variable 'temp2' [-Wunused-variable]
aesenc-int.c:   __m128i temp0, temp1, temp2, temp4;
aesenc-int.c:                         ^
aesenc-int.c: aesenc-int.c:248:17: warning: unused variable 'rev' [-Wunused-variable]
aesenc-int.c:   const __m128i rev = _mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
aesenc-int.c:                 ^
aesenc-int.c: aesenc-int.c:342:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:342:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:446:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:446:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:139:20: warning: unused function 'inc' [-Wunused-function]
aesenc-int.c: static inline void inc(unsigned char *n) {
aesenc-int.c:                    ^
aesenc-int.c: aesenc-int.c:162:1: warning: unused function 'aesni_encrypt2' [-Wunused-function]
aesenc-int.c: FUNC(2, MAKE2)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:149:22: note: expanded from macro 'FUNC'
aesenc-int.c: ...

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

Compiler output


aesenc-int.c: aesenc-int.c:41:25: warning: unused variable 'temp2' [-Wunused-variable]
aesenc-int.c:   __m128i temp0, temp1, temp2, temp4;
aesenc-int.c:                         ^
aesenc-int.c: aesenc-int.c:248:17: warning: unused variable 'rev' [-Wunused-variable]
aesenc-int.c:   const __m128i rev = _mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
aesenc-int.c:                 ^
aesenc-int.c: aesenc-int.c:342:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:342:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:446:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:446:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:139:20: warning: unused function 'inc' [-Wunused-function]
aesenc-int.c: static inline void inc(unsigned char *n) {
aesenc-int.c:                    ^
aesenc-int.c: aesenc-int.c:162:1: warning: unused function 'aesni_encrypt2' [-Wunused-function]
aesenc-int.c: FUNC(2, MAKE2)
aesenc-int.c: ^
aesenc-int.c: aesenc-int.c:149:22: note: expanded from macro 'FUNC'
aesenc-int.c: ...

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

Compiler output


aesenc-int.c: aesenc-int.c:41:25: warning: unused variable 'temp2' [-Wunused-variable]
aesenc-int.c:   __m128i temp0, temp1, temp2, temp4;
aesenc-int.c:                         ^
aesenc-int.c: aesenc-int.c:248:17: warning: unused variable 'rev' [-Wunused-variable]
aesenc-int.c:   const __m128i rev = _mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
aesenc-int.c:                 ^
aesenc-int.c: aesenc-int.c:342:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:342:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:446:15: warning: unused variable 'tmplo' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:               ^
aesenc-int.c: aesenc-int.c:446:26: warning: unused variable 'tmphi' [-Wunused-variable]
aesenc-int.c:   __m128i lo, tmplo, hi, tmphi;
aesenc-int.c:                          ^
aesenc-int.c: aesenc-int.c:643:16: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'crypto_aead_aes128gcmv1_dolbeau_aesenc_int_timingleaks_encrypt' that is compiled without support for 'ssse3'
aesenc-int.c:   __m128i Hv = _mm_shuffle_epi8(_mm_loadu_si128((const __m128i*)H), rev);
aesenc-int.c:                ^
aesenc-int.c: 6 warnings and 1 error generated.

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

Compiler output


aesenc-int.c: aesenc-int.c:24: warning: "_bswap64" redefined
aesenc-int.c:    24 | #define _bswap64(a) __builtin_bswap64(a)
aesenc-int.c:       |
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h:33,
aesenc-int.c:                  from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:27,
aesenc-int.c:                  from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h:273: note: this is the location of the previous definition
aesenc-int.c:   273 | #define _bswap64(a)             __bswapq(a)
aesenc-int.c:       |
aesenc-int.c: aesenc-int.c:25: warning: "_bswap" redefined
aesenc-int.c:    25 | #define _bswap(a) __builtin_bswap32(a)
aesenc-int.c:       |
aesenc-int.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86gprintrin.h:33,
aesenc-int.c:                  from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:27,
aesenc-int.c:                  from aesenc-int.c:11:
aesenc-int.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/ia32intrin.h:307: note: this is the location of the previous definition
aesenc-int.c:   307 | #define _bswap(a)               __bswapd(a)
aesenc-int.c:       |
aesenc-int.c: aesenc-int.c: In function 'aesni_key128_expand':
aesenc-int.c: aesenc-int.c:41:25: warning: unused variable 'temp2' [-Wunused-variable]
aesenc-int.c:    41 |   __m128i temp0, temp1, temp2, temp4;
aesenc-int.c:       |                         ^~~~~
aesenc-int.c: aesenc-int.c: In function 'aesni_encrypt1':
aesenc-int.c: aesenc-int.c:76: warning: ignoring '#pragma unroll ' [-Wunknown-pragmas]
aesenc-int.c:    76 | #pragma unroll(9)
aesenc-int.c: ...

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

Compiler output


decrypt.c: decrypt.c:13:18: error: variable has incomplete type 'EVP_CIPHER_CTX' (aka 'struct evp_cipher_ctx_st')
decrypt.c:   EVP_CIPHER_CTX x;
decrypt.c:                  ^
decrypt.c: /usr/include/openssl/types.h:102:16: note: forward declaration of 'struct evp_cipher_ctx_st'
decrypt.c: typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX;
decrypt.c:                ^
decrypt.c: 1 error 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


decrypt.c: decrypt.c: In function 'crypto_aead_aes128gcmv1_openssl_timingleaks_decrypt':
decrypt.c: decrypt.c:13:18: error: storage size of 'x' isn't known
decrypt.c:    13 |   EVP_CIPHER_CTX x;
decrypt.c:       |                  ^
decrypt.c: decrypt.c:13:18: warning: unused variable 'x' [-Wunused-variable]

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)

Compiler output


try.c: env: 'cargo': No such file or directory

Number of similar (implementation,compiler) pairs: 18, namely:
ImplementationCompiler
rust_aes_gcmclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
rust_aes_gcmclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
rust_aes_gcmclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
rust_aes_gcmclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
rust_aes_gcmclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
rust_aes_gcmgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
rust_aes_gcmgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
rust_aes_gcmgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
rust_aes_gcmgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:rust_cryptoclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:rust_cryptoclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:rust_cryptoclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:rust_cryptoclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:rust_cryptoclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:rust_cryptogcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:rust_cryptogcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:rust_cryptogcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:rust_cryptogcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)