Implementation notes: amd64, raptor, crypto_aead/morus1280256v1

Computer: raptor
Microarchitecture: amd64; Raptor Cove (b06a2)
Architecture: amd64
CPU ID: GenuineIntel-000b06a2-40-bfebfbff
SUPERCOP version: 20231107
Operation: crypto_aead
Primitive: morus1280256v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
49506555 0 020146 772 1032T:avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
49925776 0 023090 772 1064T:avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
49925776 0 023234 772 1064T:avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
51064768 0 019052 764 1096T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
53136272 0 022186 764 1096T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
54443775 0 017602 764 1096T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
54643529 0 017074 764 1096T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
678710263 0 027586 772 1064T:sse2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
679010263 0 027714 772 1064T:sse2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
685412620 0 028586 772 1032T:sse2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
739711586 0 025186 772 1032T:sse2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
77503065 0 017420 764 1096T:sse2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
821515169 0 031098 764 1096T:ref64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
826411719 0 027618 764 1096T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
92546517 0 022426 764 1096T:sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
94993295 0 017122 764 1096T:sse2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
95653408 0 016938 764 1096T:sse2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
122125458 0 018913 756 1096T:ref64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
125266695 0 022746 772 1032T:ref64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
126285086 0 017257 740 1064T:ref64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
136115646 0 019482 764 1096T:ref64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023110820230530
165576033 0 023442 772 1064T:ref64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
166676033 0 023570 772 1064T:ref64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
168355294 0 019660 764 1096T:ref64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530
171167597 0 021266 772 1032T:ref64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023110820230530

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
morus1280256v1avx2.c: morus1280256v1avx2.c:70: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'
morus1280256v1avx2.c: state[0] = XOR256(state[0], state[3]);
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280256v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:70:13: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
morus1280256v1avx2.c: morus1280256v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280256v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:71: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'
morus1280256v1avx2.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:26:27: note: expanded from macro 'AND256'
morus1280256v1avx2.c: #define AND256(x,y) _mm256_and_si256((x),(y)) /*AND(x,y) = x & y, where x and y are two 256-bit word*/
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:71:30: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
morus1280256v1avx2.c: morus1280256v1avx2.c:26:27: note: expanded from macro 'AND256'
morus1280256v1avx2.c: #define AND256(x,y) _mm256_and_si256((x),(y)) /*AND(x,y) = x & y, where x and y are two 256-bit word*/
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:71: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'
morus1280256v1avx2.c: state[0] = XOR256(state[0], AND256(state[1], state[2]));
morus1280256v1avx2.c: ^
morus1280256v1avx2.c: morus1280256v1avx2.c:25:27: note: expanded from macro 'XOR256'
morus1280256v1avx2.c: #define XOR256(x,y) _mm256_xor_si256((x),(y)) /*XOR256(x,y) = x ^ y, where x and y are two 256-bit word*/
morus1280256v1avx2.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_morus1280256v1.a(morus1280256v1avx2.o): in function `crypto_aead_morus1280256v1_avx2_timingleaks_encrypt':
try.c: morus1280256v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280256v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(morus1280256v1avx2.o): in function `crypto_aead_morus1280256v1_avx2_timingleaks_decrypt':
try.c: morus1280256v1avx2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280256v1avx2.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:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_initialization':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o):encrypt.c:(.text+0x...): more undefined references to `morus_stateupdate' follow
try.c: clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_initialization':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_generation':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_verification':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: clang-16: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_initialization':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_generation':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_verification':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o):encrypt.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:ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_initialization':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_generation':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_tag_verification':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `crypto_aead_morus1280256v1_ref_timingleaks_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(encrypt.o): in function `crypto_aead_morus1280256v1_ref_timingleaks_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: encrypt.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:ref

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_morus1280256v1.a(morus1280256v1sse2.o): in function `crypto_aead_morus1280256v1_sse2_timingleaks_encrypt':
try.c: morus1280256v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280256v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v1.a(morus1280256v1sse2.o): in function `crypto_aead_morus1280256v1_sse2_timingleaks_decrypt':
try.c: morus1280256v1sse2.c:(.text+0x...): undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: morus1280256v1sse2.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