Implementation notes: amd64, cezanne, crypto_aead/morus1280128v1

Computer: cezanne
Microarchitecture: amd64; Zen 3 (a50f00)
Architecture: amd64
CPU ID: AuthenticAMD-00a50f00-178bfbff
SUPERCOP version: 20240107
Operation: crypto_aead
Primitive: morus1280128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
567212757 0 029056 812 1016T:sse2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
59056905 0 020486 804 1016T:sse2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
59625987 0 022552 812 1048T:avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
59668419 0 025112 812 1048T:avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
61163834 0 017382 804 1016T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
62096137 0 022376 780 1080T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
64703431 0 018008 780 1080T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
64883422 0 017656 780 1080T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
656710580 0 027120 812 1048T:sse2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
657110612 0 027264 812 1048T:sse2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
69058497 0 024744 780 1080T:sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
881216241 0 032504 780 1080T:ref64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
914813033 0 029272 780 1080T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
140764067 0 020816 812 1048T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
141733596 0 017206 804 1016T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
143565968 0 022616 812 1048T:ref64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
144055968 0 022728 812 1048T:ref64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
144084946 0 018574 804 1016T:ref64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
146386747 0 023160 812 1016T:ref64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
146823207 0 016195 756 1048T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
149203944 0 018079 772 1080T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
149434067 0 020704 812 1048T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
152073990 0 018544 780 1080T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
153075636 0 019791 772 1080T:ref64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
154145117 0 018107 756 1048T:ref64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
157375662 0 020232 780 1080T:ref64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
164385941 0 019886 804 1016T:ref64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
168984509 0 020896 812 1016T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
174573804 0 017758 804 1016T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1avx2.o): in function `crypto_aead_morus1280128v1_avx2_timingleaks_encrypt':
try.c: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1avx2.o): in function `crypto_aead_morus1280128v1_avx2_timingleaks_decrypt':
try.c: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_dec_aut_step'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
morus1280128v1avx2.c: morus1280128v1avx2.c:55:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
morus1280128v1avx2.c: state[0] = XOR256(state[0], state[3]);
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280128v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:55:13: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
morus1280128v1avx2.c: morus1280128v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280128v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:56:30: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
morus1280128v1avx2.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:26:27: note: expanded from macro 'AND256'
morus1280128v1avx2.c: #define AND256(x,y) _mm256_and_si256((x),(y)) /*AND(x,y) = x & y, where x and y are two 256-bit word*/
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:56:30: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
morus1280128v1avx2.c: morus1280128v1avx2.c:26:27: note: expanded from macro 'AND256'
morus1280128v1avx2.c: #define AND256(x,y) _mm256_and_si256((x),(y)) /*AND(x,y) = x & y, where x and y are two 256-bit word*/
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:56:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'morus_stateupdate' that is compiled without support for 'avx2'
morus1280128v1avx2.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
morus1280128v1avx2.c: ^
morus1280128v1avx2.c: morus1280128v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280128v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280128v1avx2.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1avx2.o): in function `crypto_aead_morus1280128v1_avx2_timingleaks_encrypt':
try.c: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1avx2.o): in function `crypto_aead_morus1280128v1_avx2_timingleaks_decrypt':
try.c: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1avx2.c:(.text+0x...): undefined reference to `morus_dec_aut_step'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2

Compiler output

Implementation: T:sse2
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization_key_256':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_generation':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_verification':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_enc_aut_partialblock':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o):morus1280128v1sse2.c:(.text+0x...): more undefined references to `morus_stateupdate' follow
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `crypto_aead_morus1280128v1_sse2_timingleaks_encrypt':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `crypto_aead_morus1280128v1_sse2_timingleaks_decrypt':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_dec_aut_step'
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:sse2

Compiler output

Implementation: T:sse2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization_key_256':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_generation':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_verification':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_enc_aut_partialblock':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o):morus1280128v1sse2.c:(.text+0x...): more undefined references to `morus_stateupdate' follow
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse2

Compiler output

Implementation: T:sse2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_initialization_key_256':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_generation':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_tag_verification':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `morus_enc_aut_partialblock':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o):morus1280128v1sse2.c:(.text+0x...): more undefined references to `morus_stateupdate' follow
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `crypto_aead_morus1280128v1_sse2_timingleaks_encrypt':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280128v1.a(morus1280128v1sse2.o): in function `crypto_aead_morus1280128v1_sse2_timingleaks_decrypt':
try.c: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280128v1sse2.c:(.text+0x...): undefined reference to `morus_dec_aut_step'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:sse2