Implementation notes: amd64, hertz, crypto_aead/aezv3

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: aezv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
181218061 0 044911 828 1096T:aesniclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
181318045 0 044783 828 1096T:aesniclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
18389358 0 030128 820 1096T:aesniclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
187010479 0 032405 804 1096T:aesnigcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
187417596 0 041525 804 1160T:aesnigcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
19228527 0 028008 780 1064T:aesnigcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
61802138309 0 065630 844 1096T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
68975837536 0 064734 844 1096T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
82523152804 0 077171 836 1160T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
83587225740 0 048035 836 1096T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
92293825438 0 046528 836 1096T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
118821122826 0 042646 812 1064T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


aez_ni.c: In file included from aez_ni.c:37:
aez_ni.c: In function '_mm_loadu_si128',
aez_ni.c:     inlined from 'zero_pad' at aez_ni.c:67:12,
aez_ni.c:     inlined from 'cipher_aez_tiny' at aez_ni.c:498:18,
aez_ni.c:     inlined from 'aez_encrypt' at aez_ni.c:588:9,
aez_ni.c:     inlined from 'crypto_aead_aezv3_aesni_timingleaks_encrypt' at aez_ni.c:637:5:
aez_ni.c: /usr/lib/gcc/x86_64-linux-gnu/13/include/emmintrin.h:706:10: warning: array subscript '__m128i_u[2]' is partly outside array bounds of 'const unsigned char[48]' [-Warray-bounds=]
aez_ni.c:   706 |   return *__P;
aez_ni.c:       |          ^~~~
aez_ni.c: aez_ni.c: In function 'crypto_aead_aezv3_aesni_timingleaks_encrypt':
aez_ni.c: aez_ni.c:59:28: note: at offset [33, 48] into object 'pad' of size 48
aez_ni.c:    59 | static const unsigned char pad[] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
aez_ni.c:       |                            ^~~
aez_ni.c: In function 'load_partial',
aez_ni.c:     inlined from 'load_partial' at aez_ni.c:119:16,
aez_ni.c:     inlined from 'cipher_aez_tiny' at aez_ni.c:498:18,
aez_ni.c:     inlined from 'aez_encrypt' at aez_ni.c:588:9,
aez_ni.c:     inlined from 'crypto_aead_aezv3_aesni_timingleaks_encrypt' at aez_ni.c:637:5:
aez_ni.c: aez_ni.c:123:46: warning: '__builtin_memcpy' forming offset [16, 4294967263] is out of the bounds [0, 16] of object 'tmp' with type '__m128i' [-Warray-bounds=]
aez_ni.c:   123 |         for (i=0; i<n; i++) ((char*)&tmp)[i] = ((char*)p)[i];
aez_ni.c:       |                             ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~
aez_ni.c: aez_ni.c: In function 'crypto_aead_aezv3_aesni_timingleaks_encrypt':
aez_ni.c: aez_ni.c:122:17: note: 'tmp' declared here
aez_ni.c:   122 |         __m128i tmp; unsigned i;
aez_ni.c:       |                 ^~~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aesnigcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Compiler output


aez_ref.c: In function 'xor_bytes',
aez_ref.c:     inlined from 'AEZcore' at aez_ref.c:299:38:
aez_ref.c: aez_ref.c:64:29: warning: writing 32 bytes into a region of size 16 [-Wstringop-overflow=]
aez_ref.c:    64 |     while (n) { n--; dst[n] = src1[n] ^ src2[n]; }
aez_ref.c:       |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~
aez_ref.c: aez_ref.c: In function 'AEZcore':
aez_ref.c: aez_ref.c:247:10: note: at offset [0, 15] into destination object 'tmp' of size 16
aez_ref.c:   247 |     byte tmp[16], X[16], Y[16], S[16];
aez_ref.c:       |          ^~~
aez_ref.c: In function 'xor_bytes',
aez_ref.c:     inlined from 'AEZcore.constprop' at aez_ref.c:299:38:
aez_ref.c: aez_ref.c:64:29: warning: writing 32 bytes into a region of size 16 [-Wstringop-overflow=]
aez_ref.c:    64 |     while (n) { n--; dst[n] = src1[n] ^ src2[n]; }
aez_ref.c:       |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~
aez_ref.c: aez_ref.c: In function 'AEZcore.constprop':
aez_ref.c: aez_ref.c:247:10: note: at offset [0, 15] into destination object 'tmp' of size 16
aez_ref.c:   247 |     byte tmp[16], X[16], Y[16], S[16];
aez_ref.c:       |          ^~~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


aez_ni.o aez_decrypt T
aez_ni.o aez_encrypt T
aez_ni.o aez_hash T
aez_ni.o aez_setup T
aez_ni.o cipher_aez_core T
aez_ni.o cipher_aez_tiny T
aez_ni.o pass_one T
aez_ni.o pass_two T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:aesniclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:aesniclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:aesniclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:aesnigcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:aesnigcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:aesnigcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)

Namespace violations


aez_ref.o Decrypt T
aez_ref.o Encrypt T
rijndael-alg-fst.o rijndaelDecrypt T
rijndael-alg-fst.o rijndaelDecryptRound T
rijndael-alg-fst.o rijndaelEncrypt T
rijndael-alg-fst.o rijndaelEncryptRound T
rijndael-alg-fst.o rijndaelKeySetupDec T
rijndael-alg-fst.o rijndaelKeySetupEnc T

Number of similar (implementation,compiler) pairs: 6, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0)