Implementation notes: amd64, genji346, crypto_aead/elmd500v1

Computer: genji346
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20191017
Operation: crypto_aead
Primitive: elmd500v1

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: In file included from encrypt.c:12:
encrypt.c: ./module.h:84:3: warning: implicit declaration of function 'AES_set_encrypt_key_5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: ^
encrypt.c: ./module.h:85:3: warning: implicit declaration of function 'AES_set_decrypt_key_5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: ^
encrypt.c: ./module.h:103:4: warning: implicit declaration of function 'AES_encrypt_r5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_encrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c: ./module.h:105:4: warning: implicit declaration of function 'AES_decrypt_r5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_decrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c: 4 warnings generated.
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
encrypt.c: In file included from encrypt.c:12:
encrypt.c: ./module.h:84:3: warning: implicit declaration of function 'AES_set_encrypt_key_5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: ^
encrypt.c: ./module.h:85:3: warning: implicit declaration of function 'AES_set_decrypt_key_5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: ^
encrypt.c: ./module.h:103:4: warning: implicit declaration of function 'AES_encrypt_r5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_encrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c: ./module.h:105:4: warning: implicit declaration of function 'AES_decrypt_r5' is invalid in C99 [-Wimplicit-function-declaration]
encrypt.c: AES_decrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c: 4 warnings generated.
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `key_schedule':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'
try.c: clang-6.0: error: linker command failed with exit code 1 (use -v to see invocation)

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

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: In file included from encrypt.c:12:
encrypt.c: module.h: In function 'key_schedule':
encrypt.c: module.h:84:3: warning: implicit declaration of function 'AES_set_encrypt_key_5'; did you mean 'AES_set_encrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 84 | AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_encrypt_key
encrypt.c: module.h:85:3: warning: implicit declaration of function 'AES_set_decrypt_key_5'; did you mean 'AES_set_decrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 85 | AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_decrypt_key
encrypt.c: module.h: In function 'AES':
encrypt.c: module.h:103:4: warning: implicit declaration of function 'AES_encrypt_r5'; did you mean 'AES_encrypt'? [-Wimplicit-function-declaration]
encrypt.c: 103 | AES_encrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_encrypt
encrypt.c: module.h:105:4: warning: implicit declaration of function 'AES_decrypt_r5'; did you mean 'AES_decrypt'? [-Wimplicit-function-declaration]
encrypt.c: 105 | AES_decrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_decrypt
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `key_schedule':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `key_schedule':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
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 ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: In file included from encrypt.c:12:
encrypt.c: module.h: In function 'key_schedule':
encrypt.c: module.h:84:3: warning: implicit declaration of function 'AES_set_encrypt_key_5'; did you mean 'AES_set_encrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 84 | AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_encrypt_key
encrypt.c: module.h:85:3: warning: implicit declaration of function 'AES_set_decrypt_key_5'; did you mean 'AES_set_decrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 85 | AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_decrypt_key
encrypt.c: module.h: In function 'AES':
encrypt.c: module.h:103:4: warning: implicit declaration of function 'AES_encrypt_r5'; did you mean 'AES_encrypt'? [-Wimplicit-function-declaration]
encrypt.c: 103 | AES_encrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_encrypt
encrypt.c: module.h:105:4: warning: implicit declaration of function 'AES_decrypt_r5'; did you mean 'AES_decrypt'? [-Wimplicit-function-declaration]
encrypt.c: 105 | AES_decrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_decrypt
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_AD':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block.constprop.1':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block.constprop.2':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
encrypt.c: In file included from encrypt.c:12:
encrypt.c: module.h: In function 'key_schedule':
encrypt.c: module.h:84:3: warning: implicit declaration of function 'AES_set_encrypt_key_5'; did you mean 'AES_set_encrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 84 | AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_encrypt_key
encrypt.c: module.h:85:3: warning: implicit declaration of function 'AES_set_decrypt_key_5'; did you mean 'AES_set_decrypt_key'? [-Wimplicit-function-declaration]
encrypt.c: 85 | AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: | ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: | AES_set_decrypt_key
encrypt.c: module.h: In function 'AES':
encrypt.c: module.h:103:4: warning: implicit declaration of function 'AES_encrypt_r5'; did you mean 'AES_encrypt'? [-Wimplicit-function-declaration]
encrypt.c: 103 | AES_encrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_encrypt
encrypt.c: module.h:105:4: warning: implicit declaration of function 'AES_decrypt_r5'; did you mean 'AES_decrypt'? [-Wimplicit-function-declaration]
encrypt.c: 105 | AES_decrypt_r5(inp, res, key);
encrypt.c: | ^~~~~~~~~~~~~~
encrypt.c: | AES_decrypt
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `key_schedule':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE ref

Compiler output

Implementation: ref
Security model: unknown
Compiler: icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer
encrypt.c: In file included from encrypt.c(12):
encrypt.c: module.h(84): warning #266: function "AES_set_encrypt_key_5" declared implicitly
encrypt.c: AES_set_encrypt_key_5(key, 128, &aes_key2);
encrypt.c: ^
encrypt.c:
encrypt.c: In file included from encrypt.c(12):
encrypt.c: module.h(85): warning #266: function "AES_set_decrypt_key_5" declared implicitly
encrypt.c: AES_set_decrypt_key_5(key, 128, &aes_key4);
encrypt.c: ^
encrypt.c:
encrypt.c: In file included from encrypt.c(12):
encrypt.c: module.h(103): warning #266: function "AES_encrypt_r5" declared implicitly
encrypt.c: AES_encrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c:
encrypt.c: In file included from encrypt.c(12):
encrypt.c: module.h(105): warning #266: function "AES_decrypt_r5" declared implicitly
encrypt.c: AES_decrypt_r5(inp, res, key);
encrypt.c: ^
encrypt.c:
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_encrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `crypto_aead_elmd500v1_ref_decrypt':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_set_encrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_set_decrypt_key_5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: crypto_aead_elmd500v1.a(encrypt.o): in function `process_block':
try.c: encrypt.c:(.text+0x...): undefined reference to `AES_encrypt_r5'
try.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/../../../../x86_64-pc-linux-gnu/bin/ld: encrypt.c:(.text+0x...): undefined reference to `AES_decrypt_r5'

Number of similar (compiler,implementation) pairs: 24, namely:
CompilerImplementations
icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer ref
icc -march=broadwell -mtune=broadwell -O3 -fomit-frame-pointer ref
icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer ref
icc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer ref
icc -march=core-avx-i -mtune=core-avx-i -O2 -fomit-frame-pointer ref
icc -march=core-avx-i -mtune=core-avx-i -O3 -fomit-frame-pointer ref
icc -march=core-avx2 -mtune=core-avx2 -O2 -fomit-frame-pointer ref
icc -march=core-avx2 -mtune=core-avx2 -O3 -fomit-frame-pointer ref
icc -march=corei7-avx -mtune=corei7-avx -O2 -fomit-frame-pointer ref
icc -march=corei7-avx -mtune=corei7-avx -O3 -fomit-frame-pointer ref
icc -march=corei7 -mtune=corei7 -O2 -fomit-frame-pointer ref
icc -march=corei7 -mtune=corei7 -O3 -fomit-frame-pointer ref
icc -march=haswell -mtune=haswell -O2 -fomit-frame-pointer ref
icc -march=haswell -mtune=haswell -O3 -fomit-frame-pointer ref
icc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer ref
icc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer ref
icc -march=ivybridge -mtune=ivybridge -O2 -fomit-frame-pointer ref
icc -march=ivybridge -mtune=ivybridge -O3 -fomit-frame-pointer ref
icc -march=sandybridge -mtune=sandybridge -O2 -fomit-frame-pointer ref
icc -march=sandybridge -mtune=sandybridge -O3 -fomit-frame-pointer ref
icc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer ref
icc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer ref
icc -march=skylake -mtune=skylake -O2 -fomit-frame-pointer ref
icc -march=skylake -mtune=skylake -O3 -fomit-frame-pointer ref