Implementation notes: amd64, katana, crypto_sign/hector

Computer: katana
Architecture: amd64
CPU ID: GenuineIntel-000006f6-bfebfbff
SUPERCOP version: 20170105
Operation: crypto_sign
Primitive: hector
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1901352? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2016103020161009
1905976? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2016103020161009
1908416? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2016103020161009
1912680? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2016103020161009
1913440? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2016103020161009
1913792? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2016103020161009
1939512? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2016103020161009
1940096? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2016103020161009
1946216? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2016103020161009
1953408? ? ?? ? ?refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2016103020161009
1961144? ? ?? ? ?refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2016103020161009
1964416? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2016103020161009
1965344? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2016103020161009
1965904? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2016103020161009
1968512? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2016103020161009
1970056? ? ?? ? ?refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2016103020161009
1972352? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2016103020161009
1975032? ? ?? ? ?refgcc_-O3_-fomit-frame-pointer2016103020161009
1975384? ? ?? ? ?refgcc_-m64_-O3_-fomit-frame-pointer2016103020161009
1986040? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2016103020161009
1991392? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2016103020161009
1995360? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2016103020161009
2017704? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2016103020161009
2025640? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2016103020161009
2028888? ? ?? ? ?refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2016103020161009
2030680? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2016103020161009
2088344? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
2093008? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
2107624? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
2111728? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
2113640? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
2126696? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2016103020161009
2135224? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2016103020161009
2136120? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2016103020161009
2136616? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
2142016? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2016103020161009
2150400? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2016103020161009
2153264? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2016103020161009
2153320? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2016103020161009
2153656? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2016103020161009
2158664? ? ?? ? ?refgcc_-march=nocona_-O_-fomit-frame-pointer2016103020161009
2170984? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2016103020161009
2175064? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2016103020161009
2180088? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2016103020161009
2181680? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2016103020161009
2182616? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2016103020161009
2184624? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2016103020161009
2184696? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2016103020161009
2189224? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2016103020161009
2189808? ? ?? ? ?refgcc_-m64_-O_-fomit-frame-pointer2016103020161009
2192512? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2016103020161009
2197992? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2016103020161009
2211160? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2016103020161009
2215136? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2016103020161009
2238736? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2016103020161009
2241104? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2016103020161009
2247744? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2016103020161009
2279608? ? ?? ? ?refgcc_-Os_-fomit-frame-pointer2016103020161009
2280656? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2016103020161009
2281304? ? ?? ? ?refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2016103020161009
2282736? ? ?? ? ?refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2016103020161009
2294176? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2016103020161009
2336632? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2016103020161009
2349656? ? ?? ? ?refgcc_-march=k8_-Os_-fomit-frame-pointer2016103020161009
2411368? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
2415472? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
2445456? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2016103020161009
2470856? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2016103020161009

Test failure

Implementation: crypto_sign/hector/ref
Compiler: gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_sign_open returns nonzero

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref

Test failure

Implementation: crypto_sign/hector/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_sign_open returns nonzero
error 111
crypto_sign_open returns nonzero

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref

Test failure

Implementation: crypto_sign/hector/ref
Compiler: gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/hector/ref
Compiler: cc
common.c: In file included from common.h:12:0,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
common.c: inline void divclass_neg(divclass rop, const divclass op);
common.c: ^
config.c: In file included from config.h:11:0,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
config.c: inline void divclass_neg(divclass rop, const divclass op);
config.c: ^
conversion.c: In file included from conversion.c:9:0:
conversion.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
conversion.c: inline void divclass_neg(divclass rop, const divclass op);
conversion.c: ^
curve.c: In file included from config.h:11:0,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
curve.c: inline void divclass_neg(divclass rop, const divclass op);
curve.c: ^
divclass.c: In file included from ./mpfq_2_113.h:5:0,
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: #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: #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: 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: #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: #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: 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: #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: ^
divclass.c: ...
generator.c: In file included from config.h:11:0,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
generator.c: inline void divclass_neg(divclass rop, const divclass op);
generator.c: ^
hector_sig.c: In file included from config.h:11:0,
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: inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: ^
wnaf.c: In file included from config.h:11:0,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
wnaf.c: inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: ^
try.c: 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: 3, namely:
CompilerImplementations
cc ref
gcc ref
gcc -funroll-loops ref

Compiler output

Implementation: crypto_sign/hector/ref
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
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: 6, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments ref

Compiler output

Implementation: crypto_sign/hector/ref
Compiler: gcc -O2 -fomit-frame-pointer
common.c: In file included from common.h:12:0,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
common.c: inline void divclass_neg(divclass rop, const divclass op);
common.c: ^
config.c: In file included from config.h:11:0,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
config.c: inline void divclass_neg(divclass rop, const divclass op);
config.c: ^
conversion.c: In file included from conversion.c:9:0:
conversion.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
conversion.c: inline void divclass_neg(divclass rop, const divclass op);
conversion.c: ^
curve.c: In file included from config.h:11:0,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
curve.c: inline void divclass_neg(divclass rop, const divclass op);
curve.c: ^
divclass.c: In file included from ./mpfq_2_113.h:5:0,
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: #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: #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: 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: #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: #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: 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: #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: ^
divclass.c: ...
generator.c: In file included from config.h:11:0,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
generator.c: inline void divclass_neg(divclass rop, const divclass op);
generator.c: ^
hector_sig.c: In file included from config.h:11:0,
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: inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: ^
wnaf.c: In file included from config.h:11:0,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
wnaf.c: inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: ^

Number of similar (compiler,implementation) pairs: 89, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer ref
gcc -O3 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -O2 -fomit-frame-pointer ref
gcc -funroll-loops -O3 -fomit-frame-pointer ref
gcc -funroll-loops -O -fomit-frame-pointer ref
gcc -funroll-loops -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -Os -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m64 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m64 -march=nocona -O -fomit-frame-pointer ref
gcc -m64 -march=nocona -Os -fomit-frame-pointer ref
gcc -march=barcelona -O2 -fomit-frame-pointer ref
gcc -march=barcelona -O3 -fomit-frame-pointer ref
gcc -march=barcelona -O -fomit-frame-pointer ref
gcc -march=barcelona -Os -fomit-frame-pointer ref
gcc -march=k8 -O2 -fomit-frame-pointer ref
gcc -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -O -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O2 -fomit-frame-pointer ref
gcc -march=nocona -O3 -fomit-frame-pointer ref
gcc -march=nocona -O -fomit-frame-pointer ref
gcc -march=nocona -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_sign/hector/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
common.c: In file included from common.h:12:0,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
common.c: inline void divclass_neg(divclass rop, const divclass op);
common.c: ^
config.c: In file included from config.h:11:0,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
config.c: inline void divclass_neg(divclass rop, const divclass op);
config.c: ^
conversion.c: In file included from conversion.c:9:0:
conversion.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
conversion.c: inline void divclass_neg(divclass rop, const divclass op);
conversion.c: ^
curve.c: In file included from config.h:11:0,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
curve.c: inline void divclass_neg(divclass rop, const divclass op);
curve.c: ^
divclass.c: In file included from ./mpfq_2_113.h:5:0,
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: #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: #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: 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: #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: #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: 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: #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: ^
divclass.c: ...
generator.c: In file included from config.h:11:0,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
generator.c: inline void divclass_neg(divclass rop, const divclass op);
generator.c: ^
hector_sig.c: In file included from config.h:11:0,
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: inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: ^
wnaf.c: In file included from config.h:11:0,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
wnaf.c: inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: ^
common.c: In file included from common.h:12:0,
common.c: from common.c:7:
common.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
common.c: inline void divclass_neg(divclass rop, const divclass op);
common.c: ^
config.c: In file included from config.h:11:0,
config.c: from config.c:10:
config.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
config.c: inline void divclass_neg(divclass rop, const divclass op);
config.c: ^
conversion.c: In file included from conversion.c:9:0:
conversion.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
conversion.c: inline void divclass_neg(divclass rop, const divclass op);
conversion.c: ^
curve.c: In file included from config.h:11:0,
curve.c: from curve.c:7:
curve.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
curve.c: inline void divclass_neg(divclass rop, const divclass op);
curve.c: ^
divclass.c: In file included from ./mpfq_2_113.h:5:0,
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: #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: #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: 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: #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: #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: 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: #define MPFQ_(X) mpfq_2_113_ ## X
divclass.c: ^
divclass.c: ...
generator.c: In file included from config.h:11:0,
generator.c: from generator.c:10:
generator.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
generator.c: inline void divclass_neg(divclass rop, const divclass op);
generator.c: ^
hector_sig.c: In file included from config.h:11:0,
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: inline void divclass_neg(divclass rop, const divclass op);
hector_sig.c: ^
wnaf.c: In file included from config.h:11:0,
wnaf.c: from wnaf.c:10:
wnaf.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
wnaf.c: inline void divclass_neg(divclass rop, const divclass op);
wnaf.c: ^

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -m64 -march=barcelona -O -fomit-frame-pointer ref
gcc -m64 -march=barcelona -Os -fomit-frame-pointer ref