Implementation notes: amd64, hertz, crypto_aead/aezv4

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: aezv4
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
185120797 0 047718 828 1096T:aesniclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
185620988 0 047798 828 1096T:aesniclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
186911026 0 031872 820 1096T:aesniclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
187213399 0 034965 804 1096T:aesnigcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
189920014 0 043557 804 1160T:aesnigcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
192910144 0 029280 780 1064T:aesnigcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
14748142254 0 069598 844 1096T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
14835342163 0 069630 844 1096T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
42642454136 0 078083 836 1160T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
45901729320 0 051179 836 1096T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
50833127684 0 048872 836 1096T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
72766124834 0 044294 812 1064T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/13/include/pmmintrin.h:31,
encrypt.c:                  from /usr/lib/gcc/x86_64-linux-gnu/13/include/tmmintrin.h:31,
encrypt.c:                  from /usr/lib/gcc/x86_64-linux-gnu/13/include/smmintrin.h:32,
encrypt.c:                  from encrypt.c:46:
encrypt.c: In function '_mm_loadu_si128',
encrypt.c:     inlined from 'loadu' at encrypt.c:104:46,
encrypt.c:     inlined from 'zero_pad' at encrypt.c:212:12,
encrypt.c:     inlined from 'cipher_aez_tiny' at encrypt.c:588:18,
encrypt.c:     inlined from 'aez_encrypt' at encrypt.c:678:9,
encrypt.c:     inlined from 'crypto_aead_aezv4_aesni_timingleaks_encrypt' at encrypt.c:887:5:
encrypt.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=]
encrypt.c:   706 |   return *__P;
encrypt.c:       |          ^~~~
encrypt.c: encrypt.c: In function 'crypto_aead_aezv4_aesni_timingleaks_encrypt':
encrypt.c: encrypt.c:204:28: note: at offset [33, 48] into object 'pad' of size 48
encrypt.c:   204 | static const unsigned char pad[] = {0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
encrypt.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


encrypt.c: In function 'xor_bytes',
encrypt.c:     inlined from 'AEZcore' at encrypt.c:277:38:
encrypt.c: encrypt.c:67:29: warning: writing 32 bytes into a region of size 16 [-Wstringop-overflow=]
encrypt.c:    67 |     while (n) { n--; dst[n] = src1[n] ^ src2[n]; }
encrypt.c:       |                      ~~~~~~~^~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c: In function 'AEZcore':
encrypt.c: encrypt.c:225:10: note: at offset [0, 15] into destination object 'tmp' of size 16
encrypt.c:   225 |     byte tmp[16], X[16], Y[16], S[16];
encrypt.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


encrypt.o aez_decrypt T
encrypt.o aez_encrypt T
encrypt.o aez_hash T
encrypt.o aez_setup T
encrypt.o cipher_aez_core T
encrypt.o cipher_aez_tiny T
encrypt.o pass_one T
encrypt.o pass_two T
encrypt.o zero_set_byte 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


blake2b.o blake2b T
blake2b.o blake2b_final T
blake2b.o blake2b_init T
blake2b.o blake2b_update T
encrypt.o Decrypt T
encrypt.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)