Implementation notes: amd64, speed2supercop, crypto_aead/deoxysi128v141

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: deoxysi128v141
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
758428712 0 044365 752 928T:aesnigcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
770827325 0 043942 792 872T:aesniclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
776827261 0 043702 792 872T:aesniclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
788826868 0 040549 752 928T:aesnigcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
794027282 0 040749 752 928T:aesnigcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
802423492 0 035672 728 896T:aesnigcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
805227491 0 041199 784 920T:aesniclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
808427587 0 040438 792 856T:aesniclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12820122158 0 0135679 784 920T:aesnisclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12828122411 0 0139294 792 872T:aesnisclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12832122379 0 0139086 792 872T:aesnisclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12948122285 0 0135030 792 856T:aesnisclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14772111662 0 0123848 728 896T:aesnisgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14916121637 0 0137293 752 928T:aesnisgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14940121616 0 0135293 752 928T:aesnisgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
18208116240 0 0129709 752 928T:aesnisgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
6562496580 0 547112614 792 1432T:bitsliceclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
6568496580 0 547112406 792 1432T:bitsliceclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
69524118462 0 592134173 752 1520T:bitslicegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
7692096741 0 547109519 784 1480T:bitsliceclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
78348100867 0 592114621 752 1520T:bitslicegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
7909698866 0 547110806 792 1416T:bitsliceclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
83432148929 0 592162469 752 1520T:bitslicegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
9066492872 0 592105104 728 1488T:bitslicegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12971634327 0 59248085 752 1520T:tablegcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
12971635061 0 59250789 752 1520T:tablegcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
13381234141 0 54748247 784 1480T:tableclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
13426832528 0 59244776 728 1488T:tablegcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
13922834198 0 59247733 752 1520T:tablegcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14197635126 0 54752558 792 1432T:tableclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14210435126 0 54752382 792 1432T:tableclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14250835114 0 54751166 792 1416T:tableclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
14801234764 0 54748078 792 1416T:tableclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
53157226570 0 042285 752 928T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
54051624984 0 042222 792 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
69969627070 0 043134 792 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
70631626744 0 044206 792 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
110105224482 0 037798 792 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
125515624489 0 038221 752 928T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
150573623878 0 037983 784 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
197116822345 0 034608 728 896T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
204300023593 0 037133 752 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

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 (Debian_Clang_16.0.6_(27+b1))

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 (Debian_Clang_16.0.6_(27+b1))
T:aesnisclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:aesnisclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:aesnisclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:aesnisclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

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:90:12: note: in expansion of macro 'xor'
deoxys.c:    90 |     Auth = xor(Auth, Auth);
deoxys.c:       |            ^~~
deoxys.c: deoxys.c:71:13: note: 'Auth' was declared here
deoxys.c:    71 |     __m128i Auth;
deoxys.c:       |             ^~~~
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:91:13: note: in expansion of macro 'xor'
deoxys.c:    91 |     Tweak = xor(Tweak, Tweak);
deoxys.c:       |             ^~~
deoxys.c: deoxys.c:69:13: note: 'Tweak' was declared here
deoxys.c:    69 |     __m128i Tweak;
deoxys.c:       |             ^~~~~
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:346:16: note: in expansion of macro 'xor'
deoxys.c:   346 |     Checksum = xor(Checksum, Checksum);
deoxys.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:aesnisgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:aesnisgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:aesnisgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:aesnisgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.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 (Debian_Clang_16.0.6_(27+b1))
T:bitsliceclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:bitsliceclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:bitsliceclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

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 (Debian_Clang_16.0.6_(27+b1))