Implementation notes: amd64, ghf51, crypto_sign/hector

Computer: ghf51
Architecture: amd64
CPU ID: AuthenticAMD-00810f81-178bfbff
SUPERCOP version: 20200702
Operation: crypto_sign
Primitive: hector
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1188746206000 0 0418773 960 2376refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071420200702
1210742153379 0 0364541 960 2376refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071420200702
1280864172762 0 0383709 960 2376refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020071420200702

Compiler output

Implementation: ref
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
common.c: In file included from common.c:7:
common.c: In file included from ./common.h:12:
common.c: In file included from ./divclass.h:10:
common.c: In file included from ./field.h:7:
common.c: In file included from ./mpfq_2_113.h:5:
common.c: ./x86_64/mpfq_2_113.h:740:14: error: use of unknown builtin '__builtin_ia32_pslldqi128' [-Wimplicit-function-declaration]
common.c: r.s = t0 ^ SHLD(t1, 64);
common.c: ^
common.c: ./x86_64/mpfq_2_113.h:597:25: note: expanded from macro 'SHLD'
common.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
common.c: ^
common.c: ./x86_64/mpfq_2_113.h:740:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
common.c: r.s = t0 ^ SHLD(t1, 64);
common.c: ^~~~~~~~~~~~
common.c: ./x86_64/mpfq_2_113.h:597:19: note: expanded from macro 'SHLD'
common.c: #define SHLD(x,r) (v2di)__builtin_ia32_pslldqi128 ((gcc43bugfix) (x),(r))
common.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
common.c: ./x86_64/mpfq_2_113.h:747:14: error: use of unknown builtin '__builtin_ia32_psrldqi128' [-Wimplicit-function-declaration]
common.c: r.s = t2 ^ SHRD(t1, 64);
common.c: ^
common.c: ./x86_64/mpfq_2_113.h:598:25: note: expanded from macro 'SHRD'
common.c: #define SHRD(x,r) (v2di)__builtin_ia32_psrldqi128 ((gcc43bugfix) (x),(r))
common.c: ^
common.c: ./x86_64/mpfq_2_113.h:747:14: error: invalid conversion between vector type 'v2di' (vector of 2 'uint64_t' values) and integer type 'int' of different size
common.c: r.s = t2 ^ SHRD(t1, 64);
common.c: ...

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: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
common.c: In file included from common.h:12,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
common.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
common.c: | ^~~~~~~~~~~~
config.c: In file included from config.h:11,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
config.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
config.c: | ^~~~~~~~~~~~
conversion.c: In file included from conversion.c:9:
conversion.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
conversion.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
conversion.c: | ^~~~~~~~~~~~
curve.c: In file included from config.h:11,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
curve.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
curve.c: | ^~~~~~~~~~~~
divclass.c: In file included from ./mpfq_2_113.h:5,
divclass.c: from ./field.h:7,
divclass.c: from divclass.h:10,
divclass.c: from divclass.c:7:
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ./mpfq_name_K.h:33:21: note: in expansion of macro ‘MPFQ_’
divclass.c: 33 | #define Kset(a0,a1) MPFQ_(set) (K,a0,a1)
divclass.c: | ^~~~~
divclass.c: divclass.c:410:2: note: in expansion of macro ‘Kset’
divclass.c: 410 | Kset(rop->m_V0,op->m_V0);
divclass.c: | ^~~~
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ./mpfq_name_K.h:33:21: note: in expansion of macro ‘MPFQ_’
divclass.c: 33 | #define Kset(a0,a1) MPFQ_(set) (K,a0,a1)
divclass.c: | ^~~~~
divclass.c: divclass.c:409:2: note: in expansion of macro ‘Kset’
divclass.c: 409 | Kset(rop->m_V1,op->m_V1);
divclass.c: | ^~~~
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ...
generator.c: In file included from config.h:11,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
generator.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
generator.c: | ^~~~~~~~~~~~
hector_sig.c: In file included from config.h:11,
hector_sig.c: from hector_sig.c:13:
hector_sig.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
hector_sig.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: | ^~~~~~~~~~~~
wnaf.c: In file included from config.h:11,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
wnaf.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: | ^~~~~~~~~~~~

Number of similar (compiler,implementation) pairs: 3, 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

Compiler output

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
common.c: In file included from common.h:12,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
common.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
common.c: | ^~~~~~~~~~~~
config.c: In file included from config.h:11,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
config.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
config.c: | ^~~~~~~~~~~~
conversion.c: In file included from conversion.c:9:
conversion.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
conversion.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
conversion.c: | ^~~~~~~~~~~~
curve.c: In file included from config.h:11,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
curve.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
curve.c: | ^~~~~~~~~~~~
divclass.c: In file included from ./mpfq_2_113.h:5,
divclass.c: from ./field.h:7,
divclass.c: from divclass.h:10,
divclass.c: from divclass.c:7:
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ./mpfq_name_K.h:33:21: note: in expansion of macro ‘MPFQ_’
divclass.c: 33 | #define Kset(a0,a1) MPFQ_(set) (K,a0,a1)
divclass.c: | ^~~~~
divclass.c: divclass.c:410:2: note: in expansion of macro ‘Kset’
divclass.c: 410 | Kset(rop->m_V0,op->m_V0);
divclass.c: | ^~~~
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ./mpfq_name_K.h:33:21: note: in expansion of macro ‘MPFQ_’
divclass.c: 33 | #define Kset(a0,a1) MPFQ_(set) (K,a0,a1)
divclass.c: | ^~~~~
divclass.c: divclass.c:409:2: note: in expansion of macro ‘Kset’
divclass.c: 409 | Kset(rop->m_V1,op->m_V1);
divclass.c: | ^~~~
divclass.c: ./x86_64/mpfq_2_113.h:17:18: warning: ‘mpfq_2_113_set’ is static but used in inline function ‘divclass_negaff’ which is not static
divclass.c: 17 | #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: | ^~~~~~~~~~~
divclass.c: ...
generator.c: In file included from config.h:11,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
generator.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
generator.c: | ^~~~~~~~~~~~
hector_sig.c: In file included from config.h:11,
hector_sig.c: from hector_sig.c:13:
hector_sig.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
hector_sig.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: | ^~~~~~~~~~~~
wnaf.c: In file included from config.h:11,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function ‘divclass_neg’ declared but never defined
wnaf.c: 47 | inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: | ^~~~~~~~~~~~
try.c: /usr/bin/ld: crypto_sign_hector.a(divclass.o): in function `divclass_multiply':
try.c: divclass.c:(.text+0x...): undefined reference to `divclass_negaff'
try.c: collect2: error: ld returned 1 exit status

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

Namespace violations

Implementation: ref
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
common.o K C
common.o dummyelts C
common.o f0 C
common.o f3 C
common.o gen_keypair T
common.o generator_multiples1 C
common.o generator_multiples2 C
common.o p C
common.o size_of_p C
config.o K C
config.o clear_all T
config.o dummyelts C
config.o f0 C
config.o f3 C
config.o generator_multiples1 C
config.o generator_multiples2 C
config.o init_all T
config.o p C
config.o size_of_p C
conversion.o bytearray_to_divclass T
conversion.o bytearray_to_kelt T
conversion.o bytearray_to_mpz_t T
conversion.o divclass_to_bytearray T
conversion.o kelt_to_bytearray T
conversion.o kelt_to_mpz_t T
conversion.o mpz_t_to_bytearray T
conversion.o mpz_t_to_scrambled_bytearray T
conversion.o scrambled_bytearray_to_mpz_t T
curve.o K C
curve.o curve_clear T
curve.o curve_init T
curve.o dummyelts C
curve.o f0 C
curve.o f3 C
curve.o p C
curve.o size_of_p C
divclass.o K C
divclass.o divclass_add_affine T
divclass.o divclass_clear T
divclass.o divclass_double T
divclass.o divclass_double_affine T
divclass.o divclass_init T
divclass.o divclass_iszero T
divclass.o divclass_make_affine T
divclass.o divclass_mixadd T
divclass.o divclass_multiply T
divclass.o divclass_print T
divclass.o divclass_set T
divclass.o divclass_setzero T
divclass.o dummyelts C
divclass.o f0 C
divclass.o f3 C
divclass.o p C
divclass.o size_of_p C
generator.o K C
generator.o dummyelts C
generator.o f0 C
generator.o f3 C
generator.o generator_clear T
generator.o generator_init T
generator.o generator_multiples1 C
generator.o generator_multiples2 C
generator.o generator_multiply T
generator.o p C
generator.o size_of_p C
hector_sig.o K C
hector_sig.o divclass_hash T
hector_sig.o dummyelts C
hector_sig.o f0 C
hector_sig.o f3 C
hector_sig.o generator_multiples1 C
hector_sig.o generator_multiples2 C
hector_sig.o p C
hector_sig.o shortmessagesigned T
hector_sig.o signedshortmessage T
hector_sig.o size_of_p C
mpfq_2_113.o mpfq_2_113_print T
wnaf.o K C
wnaf.o dummyelts C
wnaf.o f0 C
wnaf.o f3 C
wnaf.o p C
wnaf.o size_of_p C
wnaf.o wnaf_clear T
wnaf.o wnaf_init T
wnaf.o wnaf_set T

Number of similar (compiler,implementation) pairs: 3, 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