Implementation notes: amd64, hydra7, crypto_aead/morus1280128v1

Computer: hydra7
Microarchitecture: amd64; Sandy Bridge+AES (206a7)
Architecture: amd64
CPU ID: GenuineIntel-000206a7-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: morus1280128v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1477916398 0 032956 812 1088T:ref64gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
1482713174 0 029708 812 1088T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
232774334 0 019644 812 1088T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
236156022 0 021348 812 1088T:ref64gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
238264298 0 019251 804 1088T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
239973697 0 017391 788 1056T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
240585888 0 020843 804 1088T:ref64gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
242845529 0 019231 788 1056T:ref64gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Compiler output


morus1280128v1avx2.c: morus1280128v1avx2.c: In function 'crypto_aead_morus1280128v1_avx2_timingleaks_encrypt':
morus1280128v1avx2.c: morus1280128v1avx2.c:306:30: warning: unused variable 'j' [-Wunused-variable]
morus1280128v1avx2.c:   306 |         unsigned long long i,j;
morus1280128v1avx2.c:       |                              ^
morus1280128v1avx2.c: morus1280128v1avx2.c: In function 'crypto_aead_morus1280128v1_avx2_timingleaks_decrypt':
morus1280128v1avx2.c: morus1280128v1avx2.c:357:23: warning: unused variable 'check' [-Wunused-variable]
morus1280128v1avx2.c:   357 |         unsigned char check = 0;
morus1280128v1avx2.c:       |                       ^~~~~
morus1280128v1avx2.c: morus1280128v1avx2.c:356:23: warning: unused variable 'tag' [-Wunused-variable]
morus1280128v1avx2.c:   356 |         unsigned char tag[16];
morus1280128v1avx2.c:       |                       ^~~
morus1280128v1avx2.c: morus1280128v1avx2.c:354:30: warning: unused variable 'j' [-Wunused-variable]
morus1280128v1avx2.c:   354 |         unsigned long long i,j;
morus1280128v1avx2.c:       |                              ^
morus1280128v1avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
morus1280128v1avx2.c:                  from morus1280128v1avx2.c:2:
morus1280128v1avx2.c: morus1280128v1avx2.c: In function 'morus_enc_aut_step':
morus1280128v1avx2.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
morus1280128v1avx2.c:  1071 | _mm256_permute4x64_epi64 (__m256i __X, const int __M)
morus1280128v1avx2.c:       | ^~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: morus1280128v1avx2.c:41:27: note: called from here
morus1280128v1avx2.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*/
morus1280128v1avx2.c:       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
morus1280128v1avx2.c: morus1280128v1avx2.c:204:20: note: in expansion of macro 'ROTL256_64'
morus1280128v1avx2.c:   204 |         state[2] = ROTL256_64(state[2]);
morus1280128v1avx2.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_morus1280128v1_ref_timingleaks_encrypt':
encrypt.c: encrypt.c:224:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c:   224 |         uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c:       |                 ^~~~~~~~~~~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_morus1280128v1_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:271:17: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   271 |         uint8_t check = 0;
encrypt.c:       |                 ^~~~~
encrypt.c: encrypt.c:270:17: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c:   270 |         uint8_t tag[16];
encrypt.c:       |                 ^~~
encrypt.c: encrypt.c:269:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
encrypt.c:   269 |         uint8_t plaintextblock[32], ciphertextblock[32];
encrypt.c:       |                 ^~~~~~~~~~~~~~
encrypt.c: encrypt.c:268:25: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:   268 |         unsigned long i,j;
encrypt.c:       |                         ^

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

Compiler output


morus1280128v1opt64.c: morus1280128v1opt64.c: In function 'crypto_aead_morus1280128v1_ref64_timingleaks_encrypt':
morus1280128v1opt64.c: morus1280128v1opt64.c:286:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c:   286 |         uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c:       |                 ^~~~~~~~~~~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c: In function 'crypto_aead_morus1280128v1_ref64_timingleaks_decrypt':
morus1280128v1opt64.c: morus1280128v1opt64.c:334:17: warning: unused variable 'check' [-Wunused-variable]
morus1280128v1opt64.c:   334 |         uint8_t check = 0;
morus1280128v1opt64.c:       |                 ^~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c:333:17: warning: unused variable 'tag' [-Wunused-variable]
morus1280128v1opt64.c:   333 |         uint8_t tag[16];
morus1280128v1opt64.c:       |                 ^~~
morus1280128v1opt64.c: morus1280128v1opt64.c:332:17: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1opt64.c:   332 |         uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1opt64.c:       |                 ^~~~~~~~~~~~~~
morus1280128v1opt64.c: morus1280128v1opt64.c:331:25: warning: unused variable 'j' [-Wunused-variable]
morus1280128v1opt64.c:   331 |         unsigned long i,j;
morus1280128v1opt64.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


morus1280128v1sse2.c: morus1280128v1sse2.c: In function 'morus_enc_aut_step':
morus1280128v1sse2.c: morus1280128v1sse2.c:197:21: warning: unused variable 't2' [-Wunused-variable]
morus1280128v1sse2.c:   197 |     __m128i tt, t1, t2;
morus1280128v1sse2.c:       |                     ^~
morus1280128v1sse2.c: morus1280128v1sse2.c:197:17: warning: unused variable 't1' [-Wunused-variable]
morus1280128v1sse2.c:   197 |     __m128i tt, t1, t2;
morus1280128v1sse2.c:       |                 ^~
morus1280128v1sse2.c: morus1280128v1sse2.c:197:13: warning: unused variable 'tt' [-Wunused-variable]
morus1280128v1sse2.c:   197 |     __m128i tt, t1, t2;
morus1280128v1sse2.c:       |             ^~
morus1280128v1sse2.c: morus1280128v1sse2.c:196:13: warning: unused variable 't' [-Wunused-variable]
morus1280128v1sse2.c:   196 |     __m128i t;
morus1280128v1sse2.c:       |             ^
morus1280128v1sse2.c: morus1280128v1sse2.c: In function 'morus_dec_aut_step':
morus1280128v1sse2.c: morus1280128v1sse2.c:222:13: warning: unused variable 't' [-Wunused-variable]
morus1280128v1sse2.c:   222 |     __m128i t;
morus1280128v1sse2.c:       |             ^
morus1280128v1sse2.c: morus1280128v1sse2.c: In function 'crypto_aead_morus1280128v1_sse2_timingleaks_encrypt':
morus1280128v1sse2.c: morus1280128v1sse2.c:314:13: warning: unused variable 'plaintextblock' [-Wunused-variable]
morus1280128v1sse2.c:   314 |     uint8_t plaintextblock[32], ciphertextblock[32];
morus1280128v1sse2.c:       |             ^~~~~~~~~~~~~~
morus1280128v1sse2.c: morus1280128v1sse2.c: In function 'crypto_aead_morus1280128v1_sse2_timingleaks_decrypt':
morus1280128v1sse2.c: morus1280128v1sse2.c:362:13: warning: unused variable 'check' [-Wunused-variable]
morus1280128v1sse2.c:   362 |     uint8_t check = 0;
morus1280128v1sse2.c:       |             ^~~~~
morus1280128v1sse2.c: ...

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