Implementation notes: amd64, speed2supercop, crypto_aead/aes256otrcv3

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes256otrcv3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
840820379 0 24037910 808 1120T:ni_p7m1clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
842820379 0 24037718 808 1120T:ni_p7m1clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
844420235 0 24037830 808 1120T:ni_p7m2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
844820235 0 24037638 808 1120T:ni_p7m2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
847617151 0 24031319 800 1168T:ni_p7m1clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
850417225 0 24030574 808 1104T:ni_p7m1clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
856816944 0 24031175 800 1168T:ni_p7m2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
859617017 0 24030430 808 1104T:ni_p7m2clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
875220875 0 24038214 808 1120T:ni_p8m1clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
875620859 0 24038390 808 1120T:ni_p8m1clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
885220795 0 24038198 808 1120T:ni_p8m2clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
887220795 0 24038390 808 1120T:ni_p8m2clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
895217461 0 24031639 800 1168T:ni_p8m1clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
896417561 0 24030910 808 1104T:ni_p8m1clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
900017224 0 24031463 800 1168T:ni_p8m2clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
902821569 0 24037269 768 1168T:ni_p7m2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
906417289 0 24030702 808 1104T:ni_p8m2clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
921617593 0 24031317 768 1168T:ni_p7m2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
922022177 0 24037877 768 1168T:ni_p8m2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
925621537 0 24037237 768 1168T:ni_p7m1gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
930417673 0 24031397 768 1168T:ni_p7m1gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
931617859 0 24031284 760 1168T:ni_p7m1gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
933217797 0 24031220 760 1168T:ni_p7m2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
934022273 0 24037973 768 1168T:ni_p8m1gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1003218369 0 24032101 768 1168T:ni_p8m2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1022018529 0 24032261 768 1168T:ni_p8m1gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1376814574 0 24026880 744 1136T:ni_p8m2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1384414691 0 24026992 744 1136T:ni_p8m1gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1393219072 0 24032508 760 1168T:ni_p8m2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1404819031 0 24032460 760 1168T:ni_p8m1gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1441214232 0 24026528 744 1136T:ni_p7m2gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1458814389 0 24026688 744 1136T:ni_p7m1gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1140685402 4392 24019125 5168 1168T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
11722413242 4392 24028935 5168 1168T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1218729275 4400 24025486 5216 1104T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12309210309 4400 24027389 5216 1120T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12335610341 4400 24027629 5216 1120T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1248644795 4400 24018246 5216 1104T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1256804680 4392 24018124 5160 1168T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1368244456 4400 24018727 5208 1168T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
1405243934 4392 24016184 5144 1136T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Compiler output


encrypt.c: encrypt.c:233:96: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                                                ^~~
encrypt.c: encrypt.c:233:91: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                                           ^~~
encrypt.c: encrypt.c:233:86: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                                      ^~~
encrypt.c: encrypt.c:233:81: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                                 ^~~
encrypt.c: encrypt.c:233:76: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                            ^~~
encrypt.c: encrypt.c:233:71: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                                       ^~~
encrypt.c: encrypt.c:233:58: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                          ^~~
encrypt.c: encrypt.c:233:53: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c:         const block sh1 = _mm_set_epi8(255, 255, 255, 255, 255, 255, 15, 14, 255, 255, 255, 255, 255, 255, 7, 6);
encrypt.c:                           ~~~~~~~~~~~~                     ^~~
encrypt.c: encrypt.c:233:48: warning: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Wconstant-conversion]
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 10, namely:
ImplementationCompiler
T:ni_p7m1clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m1clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m1clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m1clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m1clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m1clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m1clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m1clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m1clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m1clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


encrypt.c: encrypt.c: In function 'EFunc':
encrypt.c: encrypt.c:454:24: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:   454 |         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:       |                        ^~~
encrypt.c: encrypt.c: In function 'DFunc':
encrypt.c: encrypt.c:652:24: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:   652 |         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:       |                        ^~~
encrypt.c: encrypt.c: At top level:
encrypt.c: encrypt.c:92:13: warning: 'AES_128_Key_Expansion' defined but not used [-Wunused-function]
encrypt.c:    92 | static void AES_128_Key_Expansion(
encrypt.c:       |             ^~~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 16, namely:
ImplementationCompiler
T:ni_p7m1gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m1gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m1gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m1gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p7m2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m1gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m1gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m1gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m1gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m2gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m2gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m2gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:ni_p8m2gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


encrypt.c: encrypt.c:454:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:                        ^
encrypt.c: encrypt.c:652:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:                        ^
encrypt.c: encrypt.c:92:13: warning: unused function 'AES_128_Key_Expansion' [-Wunused-function]
encrypt.c: static void AES_128_Key_Expansion(
encrypt.c:             ^
encrypt.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:ni_p7m2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p7m2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:ni_p8m2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


encrypt.c: encrypt.c:454:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:                        ^
encrypt.c: encrypt.c:652:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c:         ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c:                        ^
encrypt.c: encrypt.c:92:13: warning: unused function 'AES_128_Key_Expansion' [-Wunused-function]
encrypt.c: static void AES_128_Key_Expansion(
encrypt.c:             ^
encrypt.c: encrypt.c:121:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c:         tmp = _mm_aesenc_si128(tmp, key[1]);
encrypt.c:               ^
encrypt.c: encrypt.c:122:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c:         tmp = _mm_aesenc_si128(tmp, key[2]);
encrypt.c:               ^
encrypt.c: encrypt.c:123:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c:         tmp = _mm_aesenc_si128(tmp, key[3]);
encrypt.c:               ^
encrypt.c: encrypt.c:124:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c:         tmp = _mm_aesenc_si128(tmp, key[4]);
encrypt.c:               ^
encrypt.c: encrypt.c:125:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c:         tmp = _mm_aesenc_si128(tmp, key[5]);
encrypt.c:               ^
encrypt.c: encrypt.c:126:8: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_encrypt' that is compiled without support for 'aes'
encrypt.c: ...

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