Implementation notes: amd64, genji154, crypto_dh/hector

Computer: genji154
Architecture: amd64
CPU ID: GenuineIntel-00050671-bfebfbff
SUPERCOP version: 20170228
Operation: crypto_dh
Primitive: hector
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
4608344? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2017022620170105
4751331? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2017022620170105
4790786? ? ?? ? ?refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2017022620170105
5035888? ? ?? ? ?refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2017022620170105
5043337? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2017022620170105
5053542? ? ?? ? ?refgcc_-funroll-loops_-O3_-fomit-frame-pointer2017022620170105
5070533? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
5084521? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2017022620170105
5251064? ? ?? ? ?refgcc_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
5272787? ? ?? ? ?refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
5307458? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2017022620170105
5309213? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O3_-fomit-frame-pointer2017022620170105
5312775? ? ?? ? ?refgcc_-march=k8_-O3_-fomit-frame-pointer2017022620170105
5327829? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
5332912? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2017022620170105
5334394? ? ?? ? ?refgcc_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
5349058? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2017022620170105
5364632? ? ?? ? ?refgcc_-O2_-fomit-frame-pointer2017022620170105
5369793? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2017022620170105
5371327? ? ?? ? ?refgcc_-m64_-O2_-fomit-frame-pointer2017022620170105
5388032? ? ?? ? ?refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2017022620170105
5406674? ? ?? ? ?refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2017022620170105
5440292? ? ?? ? ?refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2017022620170105
5449652? ? ?? ? ?refgcc_-funroll-loops_-O2_-fomit-frame-pointer2017022620170105
5451238? ? ?? ? ?refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2017022620170105
5493592? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2017022620170105
5499221? ? ?? ? ?refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2017022620170105
5540652? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
5556590? ? ?? ? ?refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2017022620170105
5566665? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2017022620170105
5572281? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2017022620170105
5576207? ? ?? ? ?refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
5587855? ? ?? ? ?refgcc_-m64_-march=core-avx2_-O2_-fomit-frame-pointer2017022620170105
5600296? ? ?? ? ?refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
5604742? ? ?? ? ?refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2017022620170105
5605418? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
5609500? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2017022620170105
5613530? ? ?? ? ?refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2017022620170105
5644301? ? ?? ? ?refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2017022620170105
5701488? ? ?? ? ?refgcc_-march=nocona_-O2_-fomit-frame-pointer2017022620170105
5704049? ? ?? ? ?refgcc_-march=k8_-O2_-fomit-frame-pointer2017022620170105
5707819? ? ?? ? ?refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2017022620170105
5710471? ? ?? ? ?refgcc_-march=barcelona_-O2_-fomit-frame-pointer2017022620170105
5769998? ? ?? ? ?refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2017022620170105
5783375? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2017022620170105
5889676? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2017022620170105
5907629? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
5911282? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105
5920226? ? ?? ? ?refgcc_-m64_-Os_-fomit-frame-pointer2017022620170105
5938517? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2017022620170105
5945017? ? ?? ? ?refgcc_-funroll-loops_-Os_-fomit-frame-pointer2017022620170105
5946057? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
5966207? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2017022620170105
5968508? ? ?? ? ?refgcc_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
5970770? ? ?? ? ?refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2017022620170105
5998148? ? ?? ? ?refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
6012578? ? ?? ? ?refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2017022620170105
6015698? ? ?? ? ?refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2017022620170105
6027957? ? ?? ? ?refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2017022620170105
6036667? ? ?? ? ?refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
6075212? ? ?? ? ?refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2017022620170105
6079463? ? ?? ? ?refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
6085404? ? ?? ? ?refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2017022620170105
6104865? ? ?? ? ?refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
6135246? ? ?? ? ?refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2017022620170105
6160310? ? ?? ? ?refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2017022620170105
6176794? ? ?? ? ?refgcc_-m64_-march=core-avx2_-Os_-fomit-frame-pointer2017022620170105
6180304? ? ?? ? ?refgcc_-march=barcelona_-Os_-fomit-frame-pointer2017022620170105
6182228? ? ?? ? ?refgcc_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
6185738? ? ?? ? ?refgcc_-march=k8_-O_-fomit-frame-pointer2017022620170105
6198556? ? ?? ? ?refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2017022620170105
6227611? ? ?? ? ?refgcc_-funroll-loops_-O_-fomit-frame-pointer2017022620170105
6258447? ? ?? ? ?refgcc_-O_-fomit-frame-pointer2017022620170105
6261931? ? ?? ? ?refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2017022620170105
6284980? ? ?? ? ?refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2017022620170105
6341998? ? ?? ? ?refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2017022620170105
6872034? ? ?? ? ?refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2017022620170105
20799909? ? ?? ? ?refcc2017022620170105

Compiler output

Implementation: crypto_dh/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: 10, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments ref
clang -O3 -fwrapv -mavx -maes -mpclmul -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_dh/hector/ref
Compiler: gcc
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_dh.c: In file included from config.h:11:0,
hector_dh.c: from hector_dh.c:12:
hector_dh.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
hector_dh.c: inline void divclass_neg(divclass rop, const divclass op);
hector_dh.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_dh_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: 2, namely:
CompilerImplementations
gcc ref
gcc -funroll-loops ref

Compiler output

Implementation: crypto_dh/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_dh.c: In file included from config.h:11:0,
hector_dh.c: from hector_dh.c:12:
hector_dh.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
hector_dh.c: inline void divclass_neg(divclass rop, const divclass op);
hector_dh.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: 75, namely:
CompilerImplementations
gcc -O2 -fomit-frame-pointer ref
gcc -O -fomit-frame-pointer ref
gcc -fno-schedule-insns -O2 -fomit-frame-pointer ref
gcc -fno-schedule-insns -O -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 -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 -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 -O3 -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 -O3 -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 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -Os -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 -m64 -O2 -fomit-frame-pointer ref
gcc -m64 -Os -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 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core2 -O -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 -O3 -fomit-frame-pointer ref
gcc -m64 -march=corei7-avx -O3 -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 -Os -fomit-frame-pointer ref
gcc -m64 -march=k8 -O2 -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=native -mtune=native -O2 -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 -Os -fomit-frame-pointer ref

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: gcc -O3 -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: ...

Number of similar (compiler,implementation) pairs: 29, namely:
CompilerImplementations
gcc -O3 -fomit-frame-pointer ref
gcc -Os -fomit-frame-pointer ref
gcc -fno-schedule-insns -O3 -fomit-frame-pointer ref
gcc -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer ref
gcc -m64 -O3 -fomit-frame-pointer ref
gcc -m64 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m64 -march=core2 -Os -fomit-frame-pointer ref
gcc -m64 -march=core2 -msse4.1 -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 -O -fomit-frame-pointer ref
gcc -m64 -march=corei7 -O -fomit-frame-pointer ref
gcc -m64 -march=k8 -O3 -fomit-frame-pointer ref
gcc -march=k8 -Os -fomit-frame-pointer ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv ref
gcc -march=nocona -O -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: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: ...
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: ...

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

Compiler output

Implementation: crypto_dh/hector/ref
Compiler: gcc -m64 -march=barcelona -O -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_dh.c: In file included from config.h:11:0,
hector_dh.c: from hector_dh.c:12:
hector_dh.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
hector_dh.c: inline void divclass_neg(divclass rop, const divclass op);
hector_dh.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_dh.c: In file included from config.h:11:0,
hector_dh.c: from hector_dh.c:12:
hector_dh.c: divclass.h:47:13: warning: inline function 'divclass_neg' declared but never defined
hector_dh.c: inline void divclass_neg(divclass rop, const divclass op);
hector_dh.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: 2, namely:
CompilerImplementations
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->m_V0,op->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->m_V1,op->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->m_U0,op->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->m_U1,op->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: 4, namely:
CompilerImplementations
icc ref
icc -no-vec ref
icc -xMIC-AVX512 -O2 -fomit-frame-pointer ref
icc -xMIC-AVX512 -O3 -fomit-frame-pointer ref