Implementation notes: amd64, h8bobcat, crypto_aead/aes256otrsv3
Computer: h8bobcat
Microarchitecture: amd64; Bobcat (500f10)
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aes256otrsv3
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
291627 | 5966 4400 320 | 18790 5216 1184 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
295113 | 7115 4400 320 | 20596 5224 1184 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
318222 | 6588 4392 320 | 20948 5176 1264 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
327598 | 5308 4392 320 | 18440 5160 1232 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
450804 | 22749 4392 320 | 39037 5184 1264 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
462004 | 15571 4400 320 | 31132 5224 1184 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
462251 | 15571 4400 320 | 29988 5224 1184 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
463738 | 16687 4400 320 | 32572 5224 1184 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
481374 | 7605 4392 320 | 22413 5184 1264 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240704 | 20240625 |
Compiler output
encrypt.c: encrypt.c:250: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:250: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:250: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:250: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:250: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:250: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:250: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:250: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:250: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:471:24: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: 471 | ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c: | ^~~
encrypt.c: encrypt.c: In function 'DFunc':
encrypt.c: encrypt.c:666:24: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: 666 | ALIGN(16)uint8 tmp[BLOCK] = { 0 };
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:55:10: note: called from here
encrypt.c: 55 | v2 = _mm_aeskeygenassist_si128(v4,aes_const); \
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:88:9: note: in expansion of macro 'EXPAND_ASSIST'
encrypt.c: 88 | EXPAND_ASSIST(x0, x1, x2, x3, 255, 64); kp[14] = x0;
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: ...
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:471:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c: ^
encrypt.c: encrypt.c:666:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c: ^
encrypt.c: encrypt.c:93:24: warning: unused function 'AES_128_Key_Expansion' [-Wunused-function]
encrypt.c: __inline__ static void AES_128_Key_Expansion(
encrypt.c: ^
encrypt.c: encrypt.c:206:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: blks[0] = _mm_aesenc_si128(blks[0], key[j]);
encrypt.c: ^
encrypt.c: encrypt.c:207:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: blks[1] = _mm_aesenc_si128(blks[1], key[j]);
encrypt.c: ^
encrypt.c: encrypt.c:208:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: blks[2] = _mm_aesenc_si128(blks[2], key[j]);
encrypt.c: ^
encrypt.c: encrypt.c:209:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: blks[3] = _mm_aesenc_si128(blks[3], key[j]);
encrypt.c: ^
encrypt.c: encrypt.c:211:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: blks[4] = _mm_aesenc_si128(blks[4], key[j]);
encrypt.c: ^
encrypt.c: encrypt.c:214:13: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'AES_ecb_encrypt_PIPE' that is compiled without support for 'aes'
encrypt.c: ...
Number of similar (implementation,compiler) pairs: 8, 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_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) |
Compiler output
encrypt.c: encrypt.c:471:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c: ^
encrypt.c: encrypt.c:666:17: warning: unused variable 'tmp' [-Wunused-variable]
encrypt.c: ALIGN(16)uint8 tmp[BLOCK] = { 0 };
encrypt.c: ^
encrypt.c: encrypt.c:93:24: warning: unused function 'AES_128_Key_Expansion' [-Wunused-function]
encrypt.c: __inline__ static void AES_128_Key_Expansion(
encrypt.c: ^
encrypt.c: encrypt.c:304:18: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'mul2_PIPE' that is compiled without support for 'ssse3'
encrypt.c: __m128i intmp = le(dat[0]);
encrypt.c: ^
encrypt.c: encrypt.c:42:15: note: expanded from macro 'le'
encrypt.c: #define le(b) _mm_shuffle_epi8(b,_mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)) /*Byte order conversion*/
encrypt.c: ^
encrypt.c: encrypt.c:312:11: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'mul2_PIPE' that is compiled without support for 'ssse3'
encrypt.c: dat[1] = le(intmp);
encrypt.c: ^
encrypt.c: encrypt.c:42:15: note: expanded from macro 'le'
encrypt.c: #define le(b) _mm_shuffle_epi8(b,_mm_set_epi8(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)) /*Byte order conversion*/
encrypt.c: ^
encrypt.c: encrypt.c:319:11: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'mul2_PIPE' that is compiled without support for 'ssse3'
encrypt.c: dat[2] = le(intmp);
encrypt.c: ^
encrypt.c: encrypt.c:42:15: note: expanded from macro 'le'
encrypt.c: ...
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
T:ni_p7m2 | clang -mcpu=native -O3 -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) |