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
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
10642 | 6876 0 0 | 23428 812 1088 | T:sse2 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
10960 | 3644 0 0 | 18964 812 1088 | T:sse2 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
11427 | 3763 0 0 | 18828 812 1088 | T:sse2 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
14965 | 13101 0 0 | 29644 812 1088 | T:ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
15497 | 16334 0 0 | 32908 812 1088 | T:ref64 | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
24336 | 5856 0 0 | 20835 804 1088 | T:ref64 | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
24621 | 5982 0 0 | 21324 812 1088 | T:ref64 | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
24644 | 5511 0 0 | 19223 788 1056 | T:ref64 | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240626 | 20240625 |
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:
Implementation | Compiler |
T:avx2 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:avx2 | gcc -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:
Implementation | Compiler |
T:ref | gcc -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:
Implementation | Compiler |
T:ref | gcc -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:
Implementation | Compiler |
T:ref | gcc -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:
Implementation | Compiler |
T:ref | gcc -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:
Implementation | Compiler |
T:ref64 | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |
T:ref64 | gcc -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:
Implementation | Compiler |
T:sse2 | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0) |