Implementation notes: amd64, speed2supercop, crypto_aead/aezv5

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aezv5
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
380819774 0 041629 752 928T:aesnigcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
382412359 0 035701 792 872T:aesniclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
382413494 0 033357 752 928T:aesnigcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
382810997 0 031055 784 920T:aesniclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
383612130 0 035285 792 872T:aesniclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
386411397 0 030502 792 856T:aesniclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
390012005 0 031372 744 928T:aesnigcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
390810240 0 028040 728 896T:aesnigcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
21703233349 0 055662 808 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
22600833185 0 056917 808 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
22606832202 0 055741 808 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
44358471331 0 093453 768 928T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
51352427913 0 047973 768 928T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
57488425215 0 044710 808 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
63814826345 0 045973 768 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
68307623579 0 044015 800 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
74686423440 0 041432 744 896T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Compiler output


encrypt.c: encrypt.c:187:2: error: - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c: #error - This implementation requires __AES__ or __ARM_FEATURE_CRYPTO
encrypt.c:  ^
encrypt.c: encrypt.c:216:8: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c:        ^
encrypt.c: encrypt.c:216:23: error: unknown type name 'block'
encrypt.c: static block zero_pad(block x, unsigned zero_bytes) {
encrypt.c:                       ^
encrypt.c: encrypt.c:217:12: error: call to undeclared function 'vand'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
encrypt.c:     return vand(x, loadu(pad + zero_bytes));
encrypt.c:            ^
encrypt.c: encrypt.c:217:20: error: call to undeclared function 'loadu'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
encrypt.c:     return vand(x, loadu(pad + zero_bytes));
encrypt.c:                    ^
encrypt.c: encrypt.c:220:8: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c:        ^
encrypt.c: encrypt.c:220:27: error: unknown type name 'block'
encrypt.c: static block one_zero_pad(block x, unsigned one_zero_bytes) {
encrypt.c:                           ^
encrypt.c: encrypt.c:221:5: error: use of undeclared identifier 'block'
encrypt.c:     block *p = (block*)(pad + one_zero_bytes);
encrypt.c:     ^
encrypt.c: encrypt.c:221:12: error: use of undeclared identifier 'p'
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aesniclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

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:107:46,
encrypt.c:     inlined from 'zero_pad' at encrypt.c:217:12,
encrypt.c:     inlined from 'cipher_aez_tiny' at encrypt.c:621:18,
encrypt.c:     inlined from 'aez_encrypt' at encrypt.c:713:9,
encrypt.c:     inlined from 'crypto_aead_aezv5_aesni_timingleaks_encrypt' at encrypt.c:922: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_aezv5_aesni_timingleaks_encrypt':
encrypt.c: encrypt.c:209:28: note: at offset [33, 48] into object 'pad' of size 48
encrypt.c:   209 | 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.3.0)