Implementation notes: amd64, h3neo, crypto_aead/deoxysi256v141
Computer: h3neo
Microarchitecture: amd64; K10 45nm (100f63)
Architecture: amd64
CPU ID: AuthenticAMD-00100f63-078bfbff
SUPERCOP version: 20240808
Operation: crypto_aead
Primitive: deoxysi256v141
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
195203 | 36129 0 592 | 53204 812 1696 | T:table | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
204552 | 34024 0 547 | 47261 836 1600 | T:table | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
213070 | 36266 0 592 | 52020 812 1696 | T:table | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
221405 | 34530 0 547 | 49379 844 1600 | T:table | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
221590 | 34530 0 547 | 50299 844 1600 | T:table | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
228001 | 34982 0 547 | 51371 844 1600 | T:table | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
236088 | 33536 0 592 | 47151 788 1664 | T:table | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
239513 | 34715 0 547 | 48619 844 1600 | T:table | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
240860 | 35043 0 592 | 50020 812 1696 | T:table | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
1510231 | 26665 0 0 | 43075 844 1024 | T:ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
1551544 | 26181 0 0 | 41987 844 1024 | T:ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
1747652 | 28062 0 0 | 45124 812 1088 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
2737283 | 24773 0 0 | 39627 844 1024 | T:ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
4255283 | 24251 0 0 | 38195 844 1024 | T:ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
4978387 | 24276 0 0 | 37533 836 1024 | T:ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
5025501 | 26022 0 0 | 41772 812 1088 | T:ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
6860315 | 24671 0 0 | 39628 812 1088 | T:ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
7452344 | 23370 0 0 | 36991 788 1056 | T:ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240703 | 20240625 |
Compiler output
deoxys.c: deoxys.c:105:11: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'ssse3'
deoxys.c: tmp = permute( tmp, H_PERMUTATION );
deoxys.c: ^
deoxys.c: ./tweakable-cipher.macros:7:22: note: expanded from macro 'permute'
deoxys.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys.c: ^
deoxys.c: deoxys.c:112:5: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'ssse3'
deoxys.c: TWEAKEY_SCHEDULE3( tsubkeys1,tsubkeys2,subkeys, key);
deoxys.c: ^
deoxys.c: ./tweakable-cipher.macros:40:3: note: expanded from macro 'TWEAKEY_SCHEDULE3'
deoxys.c: ONE_KEY_ROUND( subkeys1[ 0], subkeys1[ 1], subkeys2[ 0], subkeys2[ 1] ); ts[ 1] = xor( xor(subkeys1[ 1],subkeys2[ 1]), RCONS[ 1] ); \
deoxys.c: ^
deoxys.c: ./tweakable-cipher.macros:33:16: note: expanded from macro 'ONE_KEY_ROUND'
deoxys.c: new_key1 = permute( new_key1, H_PERMUTATION);\
deoxys.c: ^
deoxys.c: ./tweakable-cipher.macros:7:22: note: expanded from macro 'permute'
deoxys.c: #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys.c: ^
deoxys.c: deoxys.c:112:5: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'ssse3'
deoxys.c: ./tweakable-cipher.macros:40:3: note: expanded from macro 'TWEAKEY_SCHEDULE3'
deoxys.c: ONE_KEY_ROUND( subkeys1[ 0], subkeys1[ 1], subkeys2[ 0], subkeys2[ 1] ); ts[ 1] = xor( xor(subkeys1[ 1],subkeys2[ 1]), RCONS[ 1] ); \
deoxys.c: ^
deoxys.c: ./tweakable-cipher.macros:34:16: note: expanded from macro 'ONE_KEY_ROUND'
deoxys.c: new_key2 = permute( new_key2, H_PERMUTATION);
deoxys.c: ^
deoxys.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:aesni | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesni | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesni | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesni | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesni | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
deoxys.c: In file included from deoxys.c:30:
deoxys.c: deoxys.c: In function 'deoxys_aead_encrypt':
deoxys.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
deoxys.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys.c: | ^~~~~~~~~~~~~~~~
deoxys.c: In file included from deoxys.c:31:
deoxys.c: tweakable-cipher.macros:7:22: note: called from here
deoxys.c: 7 | #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys.c: | ^~~~~~~~~~~~~~~~~~~~~
deoxys.c: deoxys.c:105:11: note: in expansion of macro 'permute'
deoxys.c: 105 | tmp = permute( tmp, H_PERMUTATION );
deoxys.c: | ^~~~~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
deoxys.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys.c: | ^~~~~~~~~~~~~~~~
deoxys.c: In file included from deoxys.c:31:
deoxys.c: tweakable-cipher.macros:7:22: note: called from here
deoxys.c: 7 | #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys.c: | ^~~~~~~~~~~~~~~~~~~~~
deoxys.c: deoxys.c:105:11: note: in expansion of macro 'permute'
deoxys.c: 105 | tmp = permute( tmp, H_PERMUTATION );
deoxys.c: | ^~~~~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
deoxys.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:aesni | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesni | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesni | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesni | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
deoxys.c: deoxys.c:355:20: warning: variable 'Checksum' is uninitialized when used here [-Wuninitialized]
deoxys.c: Checksum = xor(Checksum, Checksum);
deoxys.c: ^~~~~~~~
deoxys.c: ./tweakable-cipher.macros:5:32: note: expanded from macro 'xor'
deoxys.c: #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: ^
deoxys.c: deoxys.c:82:5: note: variable 'Checksum' is declared here
deoxys.c: __m128i Checksum;
deoxys.c: ^
deoxys.c: deoxys.c:99:16: warning: variable 'Auth' is uninitialized when used here [-Wuninitialized]
deoxys.c: Auth = xor(Auth, Auth);
deoxys.c: ^~~~
deoxys.c: ./tweakable-cipher.macros:5:32: note: expanded from macro 'xor'
deoxys.c: #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: ^
deoxys.c: deoxys.c:81:5: note: variable 'Auth' is declared here
deoxys.c: __m128i Auth;
deoxys.c: ^
deoxys.c: deoxys.c:100:17: warning: variable 'Tweak' is uninitialized when used here [-Wuninitialized]
deoxys.c: Tweak = xor(Tweak, Tweak);
deoxys.c: ^~~~~
deoxys.c: ./tweakable-cipher.macros:5:32: note: expanded from macro 'xor'
deoxys.c: #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: ^
deoxys.c: deoxys.c:79:5: note: variable 'Tweak' is declared here
deoxys.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:aesnis | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesnis | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesnis | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesnis | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:aesnis | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
deoxys.c: In file included from deoxys.c:30:
deoxys.c: deoxys.c: In function 'deoxys_aead_encrypt':
deoxys.c: tweakable-cipher.macros:5:18: warning: 'Auth' is used uninitialized [-Wuninitialized]
deoxys.c: 5 | #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: | ^~~~~~~~~~~~~
deoxys.c: deoxys.c:81:13: note: 'Auth' was declared here
deoxys.c: 81 | __m128i Auth;
deoxys.c: | ^~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: tweakable-cipher.macros:5:18: warning: 'Tweak' is used uninitialized [-Wuninitialized]
deoxys.c: 5 | #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: | ^~~~~~~~~~~~~
deoxys.c: deoxys.c:79:13: note: 'Tweak' was declared here
deoxys.c: 79 | __m128i Tweak;
deoxys.c: | ^~~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: tweakable-cipher.macros:5:18: warning: 'Checksum' is used uninitialized [-Wuninitialized]
deoxys.c: 5 | #define xor(a,b) _mm_xor_si128(a,b)
deoxys.c: | ^~~~~~~~~~~~~
deoxys.c: deoxys.c:82:13: note: 'Checksum' was declared here
deoxys.c: 82 | __m128i Checksum;
deoxys.c: | ^~~~~~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: deoxys.c: In function 'deoxys_aead_decrypt':
deoxys.c: tweakable-cipher.macros:5:18: warning: 'Auth' is used uninitialized [-Wuninitialized]
deoxys.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:aesnis | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesnis | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesnis | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:aesnis | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
Compiler output
deoxys256.c: deoxys256.c:249:18: warning: variable 'CHECKSUM' is uninitialized when used here [-Wuninitialized]
deoxys256.c: CHECKSUM=XOR(CHECKSUM,CHECKSUM);
deoxys256.c: ^~~~~~~~
deoxys256.c: ./deoxysi256.macros:38:39: note: expanded from macro 'XOR'
deoxys256.c: #define XOR(a,b) _mm_xor_si128(a,b)
deoxys256.c: ^
deoxys256.c: deoxys256.c:159:5: note: variable 'CHECKSUM' is declared here
deoxys256.c: __m128i CHECKSUM;
deoxys256.c: ^
deoxys256.c: deoxys256.c:175:14: warning: variable 'AUTH' is uninitialized when used here [-Wuninitialized]
deoxys256.c: AUTH=XOR(AUTH,AUTH);
deoxys256.c: ^~~~
deoxys256.c: ./deoxysi256.macros:38:39: note: expanded from macro 'XOR'
deoxys256.c: #define XOR(a,b) _mm_xor_si128(a,b)
deoxys256.c: ^
deoxys256.c: deoxys256.c:158:5: note: variable 'AUTH' is declared here
deoxys256.c: __m128i AUTH;
deoxys256.c: ^
deoxys256.c: deoxys256.c:179:5: error: always_inline function '_mm_shuffle_epi8' requires target feature 'ssse3', but would be inlined into function 'deoxys_aead_encrypt_8' that is compiled without support for 'ssse3'
deoxys256.c: KEY_SCHEDULE(key, subkey);
deoxys256.c: ^
deoxys256.c: ./deoxysi256.macros:79:5: note: expanded from macro 'KEY_SCHEDULE'
deoxys256.c: packing(subkey1[0]);\
deoxys256.c: ^
deoxys256.c: ./deoxysi256.macros:457:14: note: expanded from macro 'packing'
deoxys256.c: ...
Number of similar (implementation,compiler) pairs: 5, namely:
Implementation | Compiler |
T:bitslice | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:bitslice | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:bitslice | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:bitslice | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
T:bitslice | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0) |
Compiler output
deoxys256.c: In file included from deoxys256.c:29:
deoxys256.c: deoxys256.c: In function 'deoxys_aead_encrypt_8':
deoxys256.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
deoxys256.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys256.c: | ^~~~~~~~~~~~~~~~
deoxys256.c: In file included from deoxys256.c:30:
deoxys256.c: deoxysi256.macros:31:25: note: called from here
deoxys256.c: 31 | #define permute(a,b) _mm_shuffle_epi8(a,b)
deoxys256.c: | ^~~~~~~~~~~~~~~~~~~~~
deoxys256.c: deoxysi256.macros:32:25: note: in expansion of macro 'permute'
deoxys256.c: 32 | #define shuffle_pack(a) permute(a, SET8(15,11,7,3,14,10,6,2,13,9,5,1,12,8,4,0) )
deoxys256.c: | ^~~~~~~
deoxys256.c: deoxysi256.macros:464:14: note: in expansion of macro 'shuffle_pack'
deoxys256.c: 464 | (x)[7] = shuffle_pack((x)[7]);\
deoxys256.c: | ^~~~~~~~~~~~
deoxys256.c: deoxysi256.macros:80:5: note: in expansion of macro 'packing'
deoxys256.c: 80 | packing(subkey2[0]);\
deoxys256.c: | ^~~~~~~
deoxys256.c: deoxys256.c:179:5: note: in expansion of macro 'KEY_SCHEDULE'
deoxys256.c: 179 | KEY_SCHEDULE(key, subkey);
deoxys256.c: | ^~~~~~~~~~~~
deoxys256.c: In file included from deoxys256.c:29:
deoxys256.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/tmmintrin.h:136:1: error: inlining failed in call to 'always_inline' '_mm_shuffle_epi8': target specific option mismatch
deoxys256.c: 136 | _mm_shuffle_epi8 (__m128i __X, __m128i __Y)
deoxys256.c: | ^~~~~~~~~~~~~~~~
deoxys256.c: ...
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:bitslice | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:bitslice | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:bitslice | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:bitslice | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |