Implementation notes: amd64, kizomba, crypto_aead/morus1280128v1

Computer: kizomba
Microarchitecture: amd64; Kaby Lake (906e9)
Architecture: amd64
CPU ID: GenuineIntel-000906e9-1fc9cbf5
SUPERCOP version: 20240107
Operation: crypto_aead
Primitive: morus1280128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
47095757 0 023020 816 872T:avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
47205757 0 023316 816 920T:avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
47986612 0 020044 816 856T:avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
48254449 0 018734 808 920T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
52196074 0 023077 784 928T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
53153824 0 018349 784 928T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
53263812 0 018677 784 928T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
65746794 0 021054 808 920T:sse2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
671210255 0 027756 816 920T:sse2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
672310223 0 027428 816 872T:sse2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
713912315 0 028204 816 856T:sse2clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
778911440 0 024820 816 856T:sse2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
80998401 0 025405 784 928T:sse2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
1079214390 0 031405 784 928T:ref64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
1084511126 0 028117 784 928T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
1349418927 0 032412 816 856T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
1403413483 0 029476 816 856T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
1461113639 0 031260 816 920T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
146679205 0 023502 808 920T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
1480813607 0 030932 816 872T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
178315959 0 020388 776 928T:ref64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
179136086 0 020957 784 928T:ref64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
181153736 0 016952 760 896T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
181404350 0 019205 784 928T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
181494331 0 018748 776 928T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
182935640 0 018856 760 896T:ref64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121320231212
195356730 0 022740 816 856T:ref64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
207325569 0 019870 808 920T:ref64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
208056696 0 024332 816 920T:ref64clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
208476696 0 024036 816 872T:ref64clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212
238077478 0 020980 816 856T:ref64clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121320231212

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: 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