Implementation notes: amd64, genji346, crypto_sign/ed448goldilocks

Computer: genji346
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20191017
Operation: crypto_sign
Primitive: ed448goldilocks
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
744960111232 24 21924142862 1008 23552amd64icc_-march=corei7_-mtune=corei7_-O2_-fomit-frame-pointer2019102520191017
748280112376 24 21924144062 1008 23552amd64icc_-march=corei7_-mtune=corei7_-O3_-fomit-frame-pointer2019102520191017
788160108712 24 21924141670 1008 23552amd64icc_-march=sandybridge_-mtune=sandybridge_-O2_-fomit-frame-pointer2019102520191017
788400108712 24 21924141670 1008 23552amd64icc_-march=core-avx-i_-mtune=core-avx-i_-O2_-fomit-frame-pointer2019102520191017
788440108712 24 21924141670 1008 23552amd64icc_-march=ivybridge_-mtune=ivybridge_-O2_-fomit-frame-pointer2019102520191017
788460108712 24 21924141670 1008 23552amd64icc_-march=corei7-avx_-mtune=corei7-avx_-O2_-fomit-frame-pointer2019102520191017
788960109824 24 21924142814 1008 23552amd64icc_-march=ivybridge_-mtune=ivybridge_-O3_-fomit-frame-pointer2019102520191017
789360109824 24 21924142814 1008 23552amd64icc_-march=sandybridge_-mtune=sandybridge_-O3_-fomit-frame-pointer2019102520191017
789940109824 24 21924142814 1008 23552amd64icc_-march=core-avx-i_-mtune=core-avx-i_-O3_-fomit-frame-pointer2019102520191017
790320109824 24 21924142814 1008 23552amd64icc_-march=corei7-avx_-mtune=corei7-avx_-O3_-fomit-frame-pointer2019102520191017
82718049773 24 2192476947 960 23584amd64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
834180102312 24 21924135558 1008 23552amd64icc_-march=haswell_-mtune=haswell_-O2_-fomit-frame-pointer2019102520191017
834980102328 24 21924135574 1008 23552amd64icc_-march=skylake_-mtune=skylake_-O2_-fomit-frame-pointer2019102520191017
835140102328 24 21924135574 1008 23552amd64icc_-march=broadwell_-mtune=broadwell_-O2_-fomit-frame-pointer2019102520191017
835160102312 24 21924135558 1008 23552amd64icc_-march=core-avx2_-mtune=core-avx2_-O2_-fomit-frame-pointer2019102520191017
852300103496 24 21924136342 1008 23552amd64icc_-march=haswell_-mtune=haswell_-O3_-fomit-frame-pointer2019102520191017
853520103496 24 21924136342 1008 23552amd64icc_-march=skylake_-mtune=skylake_-O3_-fomit-frame-pointer2019102520191017
854100103496 24 21924136342 1008 23552amd64icc_-march=core-avx2_-mtune=core-avx2_-O3_-fomit-frame-pointer2019102520191017
855860103496 24 21924136342 1008 23552amd64icc_-march=broadwell_-mtune=broadwell_-O3_-fomit-frame-pointer2019102520191017
868040143472 24 21924175102 1008 2355264icc_-march=corei7_-mtune=corei7_-O2_-fomit-frame-pointer2019102520191017
876580142792 24 21924176086 1008 2355264icc_-march=skylake_-mtune=skylake_-O2_-fomit-frame-pointer2019102520191017
877180142792 24 21924176086 1008 2355264icc_-march=broadwell_-mtune=broadwell_-O2_-fomit-frame-pointer2019102520191017
877380142776 24 21924176070 1008 2355264icc_-march=core-avx2_-mtune=core-avx2_-O2_-fomit-frame-pointer2019102520191017
877860142776 24 21924176070 1008 2355264icc_-march=haswell_-mtune=haswell_-O2_-fomit-frame-pointer2019102520191017
878840143800 24 21924176694 1008 2355264icc_-march=broadwell_-mtune=broadwell_-O3_-fomit-frame-pointer2019102520191017
879120143800 24 21924176694 1008 2355264icc_-march=core-avx2_-mtune=core-avx2_-O3_-fomit-frame-pointer2019102520191017
879140143800 24 21924176694 1008 2355264icc_-march=skylake_-mtune=skylake_-O3_-fomit-frame-pointer2019102520191017
887300143512 24 21924175182 1008 2355264icc_-march=corei7_-mtune=corei7_-O3_-fomit-frame-pointer2019102520191017
888340143800 24 21924176694 1008 2355264icc_-march=haswell_-mtune=haswell_-O3_-fomit-frame-pointer2019102520191017
901420143640 24 21924176630 1008 2355264icc_-march=corei7-avx_-mtune=corei7-avx_-O2_-fomit-frame-pointer2019102520191017
901740143640 24 21924176630 1008 2355264icc_-march=core-avx-i_-mtune=core-avx-i_-O2_-fomit-frame-pointer2019102520191017
902060143640 24 21924176630 1008 2355264icc_-march=sandybridge_-mtune=sandybridge_-O2_-fomit-frame-pointer2019102520191017
902440143640 24 21924176630 1008 2355264icc_-march=ivybridge_-mtune=ivybridge_-O2_-fomit-frame-pointer2019102520191017
914520143776 24 21924176798 1008 2355264icc_-march=core-avx-i_-mtune=core-avx-i_-O3_-fomit-frame-pointer2019102520191017
914520143776 24 21924176798 1008 2355264icc_-march=sandybridge_-mtune=sandybridge_-O3_-fomit-frame-pointer2019102520191017
914600143776 24 21924176798 1008 2355264icc_-march=ivybridge_-mtune=ivybridge_-O3_-fomit-frame-pointer2019102520191017
914640143776 24 21924176798 1008 2355264icc_-march=corei7-avx_-mtune=corei7-avx_-O3_-fomit-frame-pointer2019102520191017
101234093130 24 21924122835 960 2358464gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
105350037958 24 2192464291 952 2355264gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
110424073185 24 21924100939 960 2358464gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
113032068662 24 2192495971 960 2358464gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
234946060131 24 1885287827 960 2051232gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
240072077384 24 18852107043 960 2051232gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
245310048510 24 1885274651 952 2048032gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
2473880147936 24 18852179542 1008 2048032icc_-march=corei7_-mtune=corei7_-O2_-fomit-frame-pointer2019102520191017
2485000149176 24 18852180838 1008 2048032icc_-march=corei7_-mtune=corei7_-O3_-fomit-frame-pointer2019102520191017
2609080144748 24 18852177694 1008 2048032icc_-march=ivybridge_-mtune=ivybridge_-O2_-fomit-frame-pointer2019102520191017
2612640144748 24 18852177694 1008 2048032icc_-march=sandybridge_-mtune=sandybridge_-O2_-fomit-frame-pointer2019102520191017
2614760146164 24 18852179142 1008 2048032icc_-march=corei7-avx_-mtune=corei7-avx_-O3_-fomit-frame-pointer2019102520191017
2614840146164 24 18852179142 1008 2048032icc_-march=ivybridge_-mtune=ivybridge_-O3_-fomit-frame-pointer2019102520191017
2617480144748 24 18852177694 1008 2048032icc_-march=corei7-avx_-mtune=corei7-avx_-O2_-fomit-frame-pointer2019102520191017
2620360144748 24 18852177694 1008 2048032icc_-march=core-avx-i_-mtune=core-avx-i_-O2_-fomit-frame-pointer2019102520191017
2622600146164 24 18852179142 1008 2048032icc_-march=core-avx-i_-mtune=core-avx-i_-O3_-fomit-frame-pointer2019102520191017
2623420146164 24 18852179142 1008 2048032icc_-march=sandybridge_-mtune=sandybridge_-O3_-fomit-frame-pointer2019102520191017
298022057414 24 1885284667 960 2051232gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017

Test failure

Implementation: 32
Security model: unknown
Compiler: icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer
error 111
crypto_sign_open returns nonzero

Number of similar (compiler,implementation) pairs: 11, namely:
CompilerImplementations
icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer 32
icc -march=broadwell -mtune=broadwell -O3 -fomit-frame-pointer 32
icc -march=core-avx2 -mtune=core-avx2 -O2 -fomit-frame-pointer 32
icc -march=core-avx2 -mtune=core-avx2 -O3 -fomit-frame-pointer 32
icc -march=haswell -mtune=haswell -O2 -fomit-frame-pointer 32
icc -march=haswell -mtune=haswell -O3 -fomit-frame-pointer 32
icc -march=skylake -mtune=skylake -O2 -fomit-frame-pointer 32
icc -march=skylake -mtune=skylake -O3 -fomit-frame-pointer 32
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE amd64

Test failure

Implementation: 32
Security model: unknown
Compiler: icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 18, namely:
CompilerImplementations
icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer 32
icc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer 32
icc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer 32
icc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer 32
icc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer 32
icc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer 32
icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer 64
icc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer 64
icc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer 64
icc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer 64
icc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer 64
icc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer 64
icc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer amd64
icc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer amd64
icc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer amd64
icc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer amd64
icc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer amd64
icc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer amd64

Compiler output

Implementation: 32
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
barrett_field.c: In file included from barrett_field.c:5:
barrett_field.c: In file included from ./barrett_field.h:15:
barrett_field.c: In file included from ./word.h:28:
barrett_field.c: In file included from /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/immintrin.h:27:
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:55:72: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:61:72: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline void __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:68:74: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:74:74: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:84:74: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:90:74: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/lib/gcc/x86_64-pc-linux-gnu/9.2.0/include/mmintrin.h:97:74: warning: unknown attribute '__artificial__' ignored [-Wunknown-attributes]
barrett_field.c: extern __inline __m64 __attribute__((__gnu_inline__, __always_inline__, __artificial__))
barrett_field.c: ^
barrett_field.c: ...

Number of similar (compiler,implementation) pairs: 20, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 32
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 32
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 32
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 32
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 32
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE 64
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE amd64
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE neon

Compiler output

Implementation: neon
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
crandom.c: In file included from magic.h:15,
crandom.c: from crandom.c:11:
crandom.c: p448.h: In function 'p448_weak_reduce':
crandom.c: p448.h:314:14: warning: implicit declaration of function 'vshr_n_u32' [-Wimplicit-function-declaration]
crandom.c: 314 | tmp = vshr_n_u32(aa[7],28);
crandom.c: | ^~~~~~~~~~
crandom.c: p448.h:314:14: error: incompatible types when initializing type 'uint32x2_t' {aka '__vector(2) unsigned int'} using type 'int'
crandom.c: p448.h:318:17: warning: implicit declaration of function 'vsra_n_u32' [-Wimplicit-function-declaration]
crandom.c: 318 | aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: | ^~~~~~~~~~
crandom.c: p448.h:318:17: error: incompatible types when assigning to type 'uint32x2_t' {aka '__vector(2) unsigned int'} from type 'int'
crandom.c: p448.h:320:31: warning: implicit declaration of function 'vrev64_u32' [-Wimplicit-function-declaration]
crandom.c: 320 | aa[0] = (aa[0] & vmask) + vrev64_u32(tmp) + (tmp&vm2);
crandom.c: | ^~~~~~~~~~

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

Compiler output

Implementation: neon
Security model: unknown
Compiler: icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer
crandom.c: In file included from magic.h(15),
crandom.c: from crandom.c(11):
crandom.c: p448.h(314): warning #266: function "vshr_n_u32" declared implicitly
crandom.c: tmp = vshr_n_u32(aa[7],28);
crandom.c: ^
crandom.c:
crandom.c: In file included from magic.h(15),
crandom.c: from crandom.c(11):
crandom.c: p448.h(314): error: a value of type "int" cannot be used to initialize an entity of type "uint32x2_t"
crandom.c: tmp = vshr_n_u32(aa[7],28);
crandom.c: ^
crandom.c:
crandom.c: In file included from magic.h(15),
crandom.c: from crandom.c(11):
crandom.c: p448.h(318): warning #266: function "vsra_n_u32" declared implicitly
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^
crandom.c:
crandom.c: In file included from magic.h(15),
crandom.c: from crandom.c(11):
crandom.c: p448.h(318): error: a value of type "int" cannot be assigned to an entity of type "uint32x2_t"
crandom.c: aa[i] = vsra_n_u32(aa[i] & vmask, aa[i-1], 28);
crandom.c: ^
crandom.c:
crandom.c: In file included from magic.h(15),
crandom.c: ...

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