Implementation notes: amd64, h6sandy, crypto_aead/deoxysi128v141

Computer: h6sandy
Microarchitecture: amd64; Sandy Bridge (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: deoxysi128v141
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
76218118115 0 592134556 812 1696T:bitslicegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
8813098199 0 592113412 812 1696T:bitslicegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
93910149600 0 592164556 812 1696T:bitslicegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
9727193837 0 592107367 788 1664T:bitslicegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
16656133803 0 54747333 836 1600T:tableclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
16662835967 0 59251212 812 1696T:tablegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
16684636571 0 59253060 812 1696T:tablegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
16857234928 0 54751331 844 1600T:tableclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
16866435024 0 54750835 844 1600T:tableclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
17114933462 0 59247079 788 1664T:tablegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
17414935024 0 54752779 844 1600T:tableclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
17880334985 0 54748939 844 1600T:tableclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
18528034989 0 59250012 812 1696T:tablegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
61792525005 0 040827 844 1024T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
67650727019 0 043516 812 1088T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
79132226669 0 044451 844 1024T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
80005226595 0 043019 844 1024T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
144107225761 0 041012 812 1088T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
158019324596 0 038579 844 1024T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
257008824624 0 039636 812 1088T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
267463424089 0 037645 836 1024T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625
299913423274 0 036887 788 1056T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062720240625

Compiler output


deoxys.c: deoxys.c:143:15: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'aes'
deoxys.c:               PROCESS_8_ASS_DATA_BLOCKS( States, ass_data + 16 * i , Auth );
deoxys.c:               ^
deoxys.c: ./ae.macros:31:11: note: expanded from macro 'PROCESS_8_ASS_DATA_BLOCKS'
deoxys.c:           AES8        ( States, subkeys, tTweak );          \
deoxys.c:           ^
deoxys.c: ./tweakable-cipher.macros:176:3: note: expanded from macro 'AES8'
deoxys.c:   ONE_ROUND( states , subkeys[ 1] , RT[ 1] ,  1 );\
deoxys.c:   ^
deoxys.c: ./tweakable-cipher.macros:141:8: note: expanded from macro 'ONE_ROUND'
deoxys.c: s[0] = enc( s[0] , tmp );\
deoxys.c:        ^
deoxys.c: ./tweakable-cipher.macros:1:18: note: expanded from macro 'enc'
deoxys.c: #define enc(a,b) _mm_aesenc_si128(a,b)
deoxys.c:                  ^
deoxys.c: deoxys.c:143:15: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'deoxys_aead_encrypt' that is compiled without support for 'aes'
deoxys.c: ./ae.macros:31:11: note: expanded from macro 'PROCESS_8_ASS_DATA_BLOCKS'
deoxys.c:           AES8        ( States, subkeys, tTweak );          \
deoxys.c:           ^
deoxys.c: ./tweakable-cipher.macros:176:3: note: expanded from macro 'AES8'
deoxys.c:   ONE_ROUND( states , subkeys[ 1] , RT[ 1] ,  1 );\
deoxys.c:   ^
deoxys.c: ./tweakable-cipher.macros:142:8: note: expanded from macro 'ONE_ROUND'
deoxys.c: s[1] = enc( s[1] , xor(tmp, tw_c[Round][1] ) );\
deoxys.c:        ^
deoxys.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:aesniclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesniclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesniclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesniclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


deoxys.c: deoxys.c:98:13: 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:105: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_SCHEDULE2( tsubkeys,subkeys, key);
deoxys.c:     ^
deoxys.c: ./tweakable-cipher.macros:39:3: note: expanded from macro 'TWEAKEY_SCHEDULE2'
deoxys.c:   ONE_KEY_ROUND( subkeys[ 0], subkeys[ 1] );    ts[ 1] = xor( subkeys[ 1], RCONS[ 1] ); \
deoxys.c:   ^
deoxys.c: ./tweakable-cipher.macros:35:13: note: expanded from macro 'ONE_KEY_ROUND'
deoxys.c:   new_key = permute( new_key, 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:105: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_SCHEDULE2'
deoxys.c:   ONE_KEY_ROUND( subkeys[ 1], subkeys[ 2] );    ts[ 2] = xor( subkeys[ 2], RCONS[ 2] ); \
deoxys.c:   ^
deoxys.c: ./tweakable-cipher.macros:35:13: note: expanded from macro 'ONE_KEY_ROUND'
deoxys.c:   new_key = permute( new_key, H_PERMUTATION);
deoxys.c:             ^
deoxys.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aesniclang -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:28:
deoxys.c: deoxys.c: In function 'deoxys_aead_encrypt':
deoxys.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:61:1: error: inlining failed in call to 'always_inline' '_mm_aesenc_si128': target specific option mismatch
deoxys.c:    61 | _mm_aesenc_si128 (__m128i __X, __m128i __Y)
deoxys.c:       | ^~~~~~~~~~~~~~~~
deoxys.c: In file included from deoxys.c:30:
deoxys.c: tweakable-cipher.macros:1:18: note: called from here
deoxys.c:     1 | #define enc(a,b) _mm_aesenc_si128(a,b)
deoxys.c:       |                  ^~~~~~~~~~~~~~~~~~~~~
deoxys.c: tweakable-cipher.macros:148:8: note: in expansion of macro 'enc'
deoxys.c:   148 | s[7] = enc( s[7] , xor(tmp, tw_c[Round][7] ) );\
deoxys.c:       |        ^~~
deoxys.c: tweakable-cipher.macros:189:3: note: in expansion of macro 'ONE_ROUND'
deoxys.c:   189 |   ONE_ROUND( states , subkeys[14] , RT[ 6] , 14 );\
deoxys.c:       |   ^~~~~~~~~
deoxys.c: ae.macros:31:11: note: in expansion of macro 'AES8'
deoxys.c:    31 |           AES8        ( States, subkeys, tTweak );          \
deoxys.c:       |           ^~~~
deoxys.c: deoxys.c:143:15: note: in expansion of macro 'PROCESS_8_ASS_DATA_BLOCKS'
deoxys.c:   143 |               PROCESS_8_ASS_DATA_BLOCKS( States, ass_data + 16 * i , Auth );
deoxys.c:       |               ^~~~~~~~~~~~~~~~~~~~~~~~~
deoxys.c: In file included from deoxys.c:28:
deoxys.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/wmmintrin.h:61:1: error: inlining failed in call to 'always_inline' '_mm_aesenc_si128': target specific option mismatch
deoxys.c:    61 | _mm_aesenc_si128 (__m128i __X, __m128i __Y)
deoxys.c:       | ^~~~~~~~~~~~~~~~
deoxys.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:aesnigcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnigcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnigcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnigcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


deoxys.c: deoxys.c:346: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:72:5: note: variable 'Checksum' is declared here
deoxys.c:     __m128i Checksum;
deoxys.c:     ^
deoxys.c: deoxys.c:90: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:71:5: note: variable 'Auth' is declared here
deoxys.c:     __m128i Auth;
deoxys.c:     ^
deoxys.c: deoxys.c:91: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:69:5: note: variable 'Tweak' is declared here
deoxys.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:aesnisclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesnisclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesnisclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesnisclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesnisclang -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:71:13: note: 'Auth' was declared here
deoxys.c:    71 |     __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:69:13: note: 'Tweak' was declared here
deoxys.c:    69 |     __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:72:13: note: 'Checksum' was declared here
deoxys.c:    72 |     __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:
ImplementationCompiler
T:aesnisgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnisgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnisgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:aesnisgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


deoxys_8.c: deoxys_8.c:248:18: warning: variable 'CHECKSUM' is uninitialized when used here [-Wuninitialized]
deoxys_8.c:     CHECKSUM=XOR(CHECKSUM,CHECKSUM);
deoxys_8.c:                  ^~~~~~~~
deoxys_8.c: ./deoxys.macros:38:39: note: expanded from macro 'XOR'
deoxys_8.c: #define XOR(a,b)        _mm_xor_si128(a,b)
deoxys_8.c:                                       ^
deoxys_8.c: deoxys_8.c:159:5: note: variable 'CHECKSUM' is declared here
deoxys_8.c:     __m128i CHECKSUM;
deoxys_8.c:     ^
deoxys_8.c: deoxys_8.c:174:14: warning: variable 'AUTH' is uninitialized when used here [-Wuninitialized]
deoxys_8.c:     AUTH=XOR(AUTH,AUTH);
deoxys_8.c:              ^~~~
deoxys_8.c: ./deoxys.macros:38:39: note: expanded from macro 'XOR'
deoxys_8.c: #define XOR(a,b)        _mm_xor_si128(a,b)
deoxys_8.c:                                       ^
deoxys_8.c: deoxys_8.c:158:5: note: variable 'AUTH' is declared here
deoxys_8.c:     __m128i AUTH;
deoxys_8.c:     ^
deoxys_8.c: deoxys_8.c:460:18: warning: variable 'CHECKSUM' is uninitialized when used here [-Wuninitialized]
deoxys_8.c:     CHECKSUM=XOR(CHECKSUM,CHECKSUM);
deoxys_8.c:                  ^~~~~~~~
deoxys_8.c: ./deoxys.macros:38:39: note: expanded from macro 'XOR'
deoxys_8.c: #define XOR(a,b)        _mm_xor_si128(a,b)
deoxys_8.c:                                       ^
deoxys_8.c: deoxys_8.c:366:5: note: variable 'CHECKSUM' is declared here
deoxys_8.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:bitsliceclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:bitsliceclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:bitsliceclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:bitsliceclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


deoxys_8.c: deoxys_8.c:248:18: warning: variable 'CHECKSUM' is uninitialized when used here [-Wuninitialized]
deoxys_8.c:     CHECKSUM=XOR(CHECKSUM,CHECKSUM);
deoxys_8.c:                  ^~~~~~~~
deoxys_8.c: ./deoxys.macros:38:39: note: expanded from macro 'XOR'
deoxys_8.c: #define XOR(a,b)        _mm_xor_si128(a,b)
deoxys_8.c:                                       ^
deoxys_8.c: deoxys_8.c:159:5: note: variable 'CHECKSUM' is declared here
deoxys_8.c:     __m128i CHECKSUM;
deoxys_8.c:     ^
deoxys_8.c: deoxys_8.c:174:14: warning: variable 'AUTH' is uninitialized when used here [-Wuninitialized]
deoxys_8.c:     AUTH=XOR(AUTH,AUTH);
deoxys_8.c:              ^~~~
deoxys_8.c: ./deoxys.macros:38:39: note: expanded from macro 'XOR'
deoxys_8.c: #define XOR(a,b)        _mm_xor_si128(a,b)
deoxys_8.c:                                       ^
deoxys_8.c: deoxys_8.c:158:5: note: variable 'AUTH' is declared here
deoxys_8.c:     __m128i AUTH;
deoxys_8.c:     ^
deoxys_8.c: deoxys_8.c:178: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'
deoxys_8.c:     KEY_SCHEDULE(key, subkey);
deoxys_8.c:     ^
deoxys_8.c: ./deoxys.macros:76:5: note: expanded from macro 'KEY_SCHEDULE'
deoxys_8.c:     packing(subkey[0]);\
deoxys_8.c:     ^
deoxys_8.c: ./deoxys.macros:401:14: note: expanded from macro 'packing'
deoxys_8.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:bitsliceclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)