Implementation notes: amd64, hydra7, crypto_aead/morus1280256v2

Computer: hydra7
Microarchitecture: amd64; Sandy Bridge+AES (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: morus1280256v2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
106426876 0 023428 812 1088T:sse2gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
109603644 0 018964 812 1088T:sse2gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
114273763 0 018828 812 1088T:sse2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
1496513101 0 029644 812 1088T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
1549716334 0 032908 812 1088T:ref64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
243365856 0 020835 804 1088T:ref64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
246215982 0 021324 812 1088T:ref64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
246445511 0 019223 788 1056T:ref64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_avx2_timingleaks_decrypt':
encrypt.c: encrypt.c:374:23: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   374 |         unsigned char check = 0;
encrypt.c:       |                       ^~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
encrypt.c:                  from encrypt.c:2:
encrypt.c: encrypt.c: In function 'morus_enc_aut_step':
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:1071:1: error: inlining failed in call to 'always_inline' '_mm256_permute4x64_epi64': target specific option mismatch
encrypt.c:  1071 | _mm256_permute4x64_epi64 (__m256i __X, const int __M)
encrypt.c:       | ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:41:27: note: called from here
encrypt.c:    41 | #define ROTL256_64(x)     _mm256_permute4x64_epi64((x), _MM_SHUFFLE(2,1,0,3))  /*Rotate x by 64-bit  positions to the left*/
encrypt.c:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:220:20: note: in expansion of macro 'ROTL256_64'
encrypt.c:   220 |         state[2] = ROTL256_64(state[2]);
encrypt.c:       |                    ^~~~~~~~~~
encrypt.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
encrypt.c:                  from encrypt.c:2:
encrypt.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:574:1: error: inlining failed in call to 'always_inline' '_mm256_or_si256': target specific option mismatch
encrypt.c:   574 | _mm256_or_si256 (__m256i __A, __m256i __B)
encrypt.c:       | ^~~~~~~~~~~~~~~
encrypt.c: encrypt.c:28:27: note: called from here
encrypt.c:    28 | #define OR256(x,y)        _mm256_or_si256((x),(y))         /*OR(x,y)  = x | y, where x and y are two 256-bit word*/
encrypt.c:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:39:27: note: in expansion of macro 'OR256'
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:251:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   251 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_initialization':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:66: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_generation':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:85: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_verification':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:107: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:165: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:189: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o):.../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:130: more undefined references to `morus_stateupdate' follow
try.c: collect2: error: ld returned 1 exit status

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

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:251:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   251 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~

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

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:251:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   251 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_initialization':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:66: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_generation':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:85: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_verification':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:107: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:165: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:189: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o):.../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:130: more undefined references to `morus_stateupdate' follow
try.c: collect2: error: ld returned 1 exit status

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

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:251:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   251 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_initialization':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:66: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_generation':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:85: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_tag_verification':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:107: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_enc_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:165: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `morus_dec_aut_partialblock':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:189: undefined reference to `morus_stateupdate'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `crypto_aead_morus1280256v2_ref_timingleaks_encrypt':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:213: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:224: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `crypto_aead_morus1280256v2_ref_timingleaks_decrypt':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:258: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/ref/work/encrypt.c:270: undefined reference to `morus_dec_aut_step'
try.c: collect2: error: ld returned 1 exit status

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

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_morus1280256v2_ref64_timingleaks_decrypt':
encrypt.c: encrypt.c:312:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   312 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~

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

Compiler output


try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `crypto_aead_morus1280256v2_sse2_timingleaks_encrypt':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/sse2/work/encrypt.c:290: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/sse2/work/encrypt.c:301: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: libcrypto_aead_morus1280256v2.a(encrypt.o): in function `crypto_aead_morus1280256v2_sse2_timingleaks_decrypt':
try.c: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/sse2/work/encrypt.c:334: undefined reference to `morus_enc_aut_step'
try.c: /usr/bin/ld: .../supercop-data/hydra7/amd64/try/c/gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall/timingleaks/crypto_aead/morus1280256v2/sse2/work/encrypt.c:346: undefined reference to `morus_dec_aut_step'
try.c: collect2: error: ld returned 1 exit status

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