Implementation notes: amd64, genji291, crypto_dh/hector

Computer: genji291
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20180818
Operation: crypto_dh
Primitive: hector

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: cc
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji291/amd64/lib/knownrandombytes.o: In function `randombytes':
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memcpy'
try.c: knownrandombytes.c:(.text+0x...): undefined reference to `_intel_fast_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji291/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-api.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2':
try.c: api.c:(.text+0x...): undefined reference to `__intel_mic_avx512f_memset'
try.c: /scratch_lustre_DDN7k/bdolbeaur/supercop-20180818/supercop-data/genji291/amd64/lib/libsupercop.a(crypto_stream_chacha20_dolbeau_amd64_avx2-chacha.o): In function `crypto_stream_chacha20_dolbeau_amd64_avx2_ECRYPT_keystream_bytes':
try.c: chacha.c:(.text+0x...): undefined reference to `__intel_mic_avx512f_memset'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
cc ref

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: gcc
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: 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: 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: 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: 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: #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->gt;m_V0,op->gt;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->gt;m_V1,op->gt;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: ...

Number of similar (compiler,implementation) pairs: 106, namely:
CompilerImplementations
gcc ref
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 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=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -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 -O3 -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 -O3 -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-avx -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O3 -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_dh/hector/ref
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
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: 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: 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: 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: 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: #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->gt;m_V0,op->gt;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->gt;m_V1,op->gt;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: ...
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: 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: 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: 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: 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: #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->gt;m_V0,op->gt;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->gt;m_V1,op->gt;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: ...

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

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: icc
divclass.c: divclass.c(447): warning #266: function "malloc" declared implicitly
divclass.c: multiples = malloc(sizeof(divclass) * number_of_multiples);
divclass.c: ^
divclass.c:
divclass.c: divclass.c(483): warning #266: function "free" declared implicitly
divclass.c: free(multiples);
divclass.c: ^
divclass.c:
divclass.c: divclass.c(410): warning #1173: an entity with internal linkage cannot be referenced within an inline function with external linkage
divclass.c: Kset(rop->gt;m_V0,op->gt;m_V0);
divclass.c: ^
divclass.c:
divclass.c: divclass.c(409): warning #1173: an entity with internal linkage cannot be referenced within an inline function with external linkage
divclass.c: Kset(rop->gt;m_V1,op->gt;m_V1);
divclass.c: ^
divclass.c:
divclass.c: divclass.c(408): warning #1173: an entity with internal linkage cannot be referenced within an inline function with external linkage
divclass.c: Kset(rop->gt;m_U0,op->gt;m_U0);
divclass.c: ^
divclass.c:
divclass.c: divclass.c(407): warning #1173: an entity with internal linkage cannot be referenced within an inline function with external linkage
divclass.c: Kset(rop->gt;m_U1,op->gt;m_U1);
divclass.c: ^
divclass.c:
generator.c: In file included from generator.c(20):
generator.c: x86_64/generator.c(12): warning #266: function "malloc" declared implicitly
generator.c: generator_multiples1 = malloc(sizeof(divclass) * number_of_generator_multiples1);
generator.c: ^
generator.c:
generator.c: generator.c(61): warning #266: function "free" declared implicitly
generator.c: free(generator_multiples2);
generator.c: ^
generator.c:
try.c: crypto_dh_hector.a(divclass.o): In function `mpfq_2_113_mul_ur':
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psrlqi128'
try.c: divclass.c:(.text+0x...): undefined reference to `__builtin_ia32_psllqi128'
try.c: ...

Number of similar (compiler,implementation) pairs: 16, namely:
CompilerImplementations
icc ref
icc -no-vec ref
icc -xAVX -O2 -fomit-frame-pointer ref
icc -xAVX -O3 -fomit-frame-pointer ref
icc -xCOMMON-AVX512 -O2 -fomit-frame-pointer ref
icc -xCOMMON-AVX512 -O3 -fomit-frame-pointer ref
icc -xCORE-AVX-I -O2 -fomit-frame-pointer ref
icc -xCORE-AVX-I -O3 -fomit-frame-pointer ref
icc -xCORE-AVX2 -O2 -fomit-frame-pointer ref
icc -xCORE-AVX2 -O3 -fomit-frame-pointer ref
icc -xMIC-AVX512 -O2 -fomit-frame-pointer ref
icc -xMIC-AVX512 -O3 -fomit-frame-pointer ref
icc -xSSE4.1 -O2 -fomit-frame-pointer ref
icc -xSSE4.1 -O3 -fomit-frame-pointer ref
icc -xSSE4.2 -O2 -fomit-frame-pointer ref
icc -xSSE4.2 -O3 -fomit-frame-pointer ref