Implementation notes: amd64, h3neo, crypto_sign/ed25519

Computer: h3neo
Microarchitecture: amd64; K10 45nm (100f63)
Architecture: amd64
CPU ID: AuthenticAMD-00100f63-078bfbff
SUPERCOP version: 20240425
Operation: crypto_sign
Primitive: ed25519
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
39075495328 0 0104885 844 1760amd64-64-24kgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
39126591727 0 0101596 868 1728amd64-64-24kclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
39188396353 0 0107420 868 1728amd64-64-24kclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
39245689693 0 099124 868 1728amd64-64-24kclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
39263892289 0 0102237 844 1760amd64-64-24kgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
39311895349 0 0106068 868 1728amd64-64-24kclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
39396588602 0 097974 860 1728amd64-64-24kclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
39478591959 0 0100997 844 1760amd64-64-24kgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
39899390553 0 098741 836 1760amd64-64-24kgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
53148984292 0 093501 844 1760amd64-51-30kgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
53174381265 0 090789 844 1760amd64-51-30kgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
53176079573 0 089532 868 1728amd64-51-30kclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
53224581450 0 092540 868 1728amd64-51-30kclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
53255080441 0 091188 868 1728amd64-51-30kclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
53469778031 0 087508 868 1728amd64-51-30kclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
53470780840 0 089485 844 1760amd64-51-30kgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
53634477452 0 086550 860 1728amd64-51-30kclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
54013279520 0 087397 836 1760amd64-51-30kgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
105419956402 0 074318 860 1728ref10clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
105575660976 0 081644 868 1728ref10clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
105609658972 0 078724 868 1728ref10clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
106736262841 0 084148 868 1728ref10clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
108152959590 0 080309 844 1760ref10gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
108794858557 0 075333 836 1760ref10gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
111466858694 0 077396 868 1728ref10clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2024050420240425
112659859660 0 077757 844 1760ref10gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425
112822759936 0 079405 844 1760ref10gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024050420240425

Compiler output

Implementation: amd64-64-24k
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
ge25519_scalarmult_base.c: ge25519_scalarmult_base.c: In function 'crypto_sign_ed25519_amd64_64_24k_constbranchindex_scalarmult_base':
ge25519_scalarmult_base.c: <command-line>: warning: 'crypto_sign_ed25519_amd64_64_24k_constbranchindex_sc25519_window4' accessing 85 bytes in a region of size 64 [-Wstringop-overflow=]
ge25519_scalarmult_base.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
ge25519_scalarmult_base.c: ge25519_scalarmult_base.c:24:3: note: in expansion of macro 'sc25519_window4'
ge25519_scalarmult_base.c: 24 | sc25519_window4(b,s);
ge25519_scalarmult_base.c: | ^~~~~~~~~~~~~~~
ge25519_scalarmult_base.c: <command-line>: note: referencing argument 1 of type 'signed char *'
ge25519_scalarmult_base.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
ge25519_scalarmult_base.c: ge25519_scalarmult_base.c:24:3: note: in expansion of macro 'sc25519_window4'
ge25519_scalarmult_base.c: 24 | sc25519_window4(b,s);
ge25519_scalarmult_base.c: | ^~~~~~~~~~~~~~~
ge25519_scalarmult_base.c: <command-line>: note: in a call to function 'crypto_sign_ed25519_amd64_64_24k_constbranchindex_sc25519_window4'
ge25519_scalarmult_base.c: <command-line>: note: in definition of macro 'CRYPTO_NAMESPACE'
ge25519_scalarmult_base.c: sc25519.h:58:6: note: in expansion of macro 'sc25519_window4'
ge25519_scalarmult_base.c: 58 | void sc25519_window4(signed char r[85], const sc25519 *s);
ge25519_scalarmult_base.c: | ^~~~~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64-24k
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64-24k
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64-24k
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64-64-24k

Compiler output

Implementation: ref
Security model: constbranchindex
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(open.o):(.rodata+0x0): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(sign.o):(.rodata+0x0): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(ge25519.o):(.rodata+0x0): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: clang: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 5, 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 -march=native -Os -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: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(open.o):(.rodata+0x0): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(sign.o):(.rodata+0x0): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: /usr/bin/ld: libcrypto_sign_ed25519.a(ge25519.o):(.rodata+0x1aa80): multiple definition of `crypto_sign_ed25519_ref_constbranchindex_ge25519_base'; libcrypto_sign_ed25519.a(keypair.o):(.rodata+0x0): first defined here
try.c: collect2: error: ld returned 1 exit status

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