Implementation notes: amd64, h8bobcat, crypto_aead/aes256otrcv3
Computer: h8bobcat
Microarchitecture: amd64; Bobcat (500f10)
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes256otrcv3
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
264812 | 5761 4392 240 | 20741 5200 1168 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
268613 | 8829 4400 240 | 23396 5240 1104 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
270745 | 9649 4400 240 | 25732 5240 1104 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
299108 | 4472 4392 240 | 17784 5176 1136 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
300984 | 4322 4400 240 | 17246 5232 1104 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
428227 | 13697 4392 240 | 30165 5200 1168 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
429804 | 8829 4400 240 | 24540 5240 1104 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
430592 | 4727 4400 240 | 18332 5240 1104 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
466089 | 5130 4392 240 | 19660 5192 1168 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
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:
Implementation | Compiler |
T:ni_p7m1 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m1 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m1 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m1 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m1 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m1 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m1 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m1 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m1 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m1 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
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: 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: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:41,
encrypt.c: from /usr/lib/gcc/x86_64-linux-gnu/11/include/x86intrin.h:32,
encrypt.c: from otr.h:30,
encrypt.c: from encrypt.c:33:
encrypt.c: encrypt.c: In function 'AES_256_Key_Expansion':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:87:1: error: inlining failed in call to 'always_inline' '_mm_aeskeygenassist_si128': target specific option mismatch
encrypt.c: 87 | _mm_aeskeygenassist_si128 (__m128i __X, const int __C)
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:54:10: note: called from here
encrypt.c: 54 | v2 = _mm_aeskeygenassist_si128(v4,aes_const); \
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:87:9: note: in expansion of macro 'EXPAND_ASSIST'
encrypt.c: 87 | EXPAND_ASSIST(x0, x1, x2, x3, 255, 64); kp[14] = x0;
encrypt.c: ...
Number of similar (implementation,compiler) pairs: 16, namely:
Implementation | Compiler |
T:ni_p7m1 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m1 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m1 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m1 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p7m2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m1 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m1 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m1 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m1 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ni_p8m2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.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: 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: 10, namely:
Implementation | Compiler |
T:ni_p7m2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p7m2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m2 | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m2 | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m2 | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m2 | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:ni_p8m2 | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |