Implementation notes: amd64, genji346, crypto_kem/hqc1921

Computer: genji346
Architecture: amd64
CPU ID: AuthenticAMD-00830f10-178bfbff
SUPERCOP version: 20191017
Operation: crypto_kem
Primitive: hqc1921
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
263522028674 0 056265 920 1688optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
336430028691 32 551561294 3656 6712refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
368500012810 0 038235 912 1688optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
370702030900 24 641583161 7456 6728reficpc_-march=corei7-avx_-mtune=corei7-avx_-O3_-fomit-frame-pointer2019102520191017
370708012754 0 037691 912 1688optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
371716030900 24 641583161 7456 6728reficpc_-march=core-avx-i_-mtune=core-avx-i_-O3_-fomit-frame-pointer2019102520191017
372176030900 24 641583161 7456 6728reficpc_-march=sandybridge_-mtune=sandybridge_-O3_-fomit-frame-pointer2019102520191017
373092030900 24 641583161 7456 6728reficpc_-march=ivybridge_-mtune=ivybridge_-O3_-fomit-frame-pointer2019102520191017
375920029804 24 641580769 7456 6728reficpc_-march=corei7_-mtune=corei7_-O3_-fomit-frame-pointer2019102520191017
379276029620 24 641581841 7456 6728reficpc_-march=core-avx-i_-mtune=core-avx-i_-O2_-fomit-frame-pointer2019102520191017
379930029620 24 641581841 7456 6728reficpc_-march=ivybridge_-mtune=ivybridge_-O2_-fomit-frame-pointer2019102520191017
380590029620 24 641581841 7456 6728reficpc_-march=corei7-avx_-mtune=corei7-avx_-O2_-fomit-frame-pointer2019102520191017
381364034348 24 641586513 7456 6728reficpc_-march=haswell_-mtune=haswell_-O3_-fomit-frame-pointer2019102520191017
381556029020 24 641579953 7456 6728reficpc_-march=corei7_-mtune=corei7_-O2_-fomit-frame-pointer2019102520191017
381990034348 24 641586513 7456 6728reficpc_-march=core-avx2_-mtune=core-avx2_-O3_-fomit-frame-pointer2019102520191017
382326029620 24 641581841 7456 6728reficpc_-march=sandybridge_-mtune=sandybridge_-O2_-fomit-frame-pointer2019102520191017
382888033276 24 641585897 7456 6728reficpc_-march=skylake_-mtune=skylake_-O2_-fomit-frame-pointer2019102520191017
383042033276 24 641585897 7456 6728reficpc_-march=core-avx2_-mtune=core-avx2_-O2_-fomit-frame-pointer2019102520191017
384148033276 24 641585897 7456 6728reficpc_-march=haswell_-mtune=haswell_-O2_-fomit-frame-pointer2019102520191017
384194033276 24 641585897 7456 6728reficpc_-march=broadwell_-mtune=broadwell_-O2_-fomit-frame-pointer2019102520191017
384350034348 24 641586513 7456 6728reficpc_-march=skylake_-mtune=skylake_-O3_-fomit-frame-pointer2019102520191017
384826034348 24 641586513 7456 6728reficpc_-march=broadwell_-mtune=broadwell_-O3_-fomit-frame-pointer2019102520191017
413048013180 32 551543721 3648 6712refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
416102012927 32 551543026 3648 6712refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
511460010388 0 034483 904 1656optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017
538354010565 32 551539778 3640 6712refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019102520191017

Test failure

Implementation: crypto_kem/hqc1921/ref
Compiler: icpc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
icpc -march=cannonlake -mtune=cannonlake -O2 -fomit-frame-pointer ref
icpc -march=cannonlake -mtune=cannonlake -O3 -fomit-frame-pointer ref
icpc -march=icelake-client -mtune=icelake-client -O2 -fomit-frame-pointer ref
icpc -march=icelake-client -mtune=icelake-client -O3 -fomit-frame-pointer ref
icpc -march=skylake-avx512 -mtune=skylake-avx512 -O2 -fomit-frame-pointer ref
icpc -march=skylake-avx512 -mtune=skylake-avx512 -O3 -fomit-frame-pointer ref

Compiler output

Implementation: crypto_kem/hqc1921/ref
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rng.c: clang-6.0: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(GF2X1.o): in function `NTL::build(NTL::GF2XModulus&, NTL::GF2X const&)':
try.cpp: GF2X1.cpp:(.text+0x...): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: GF2X1.cpp:(.text+0x...): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(GF2X1.o): in function `NTL::rem(NTL::GF2X&, NTL::GF2X const&, NTL::GF2X const&)':
try.cpp: GF2X1.cpp:(.text+0x...): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: GF2X1.cpp:(.text+0x...): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(GF2X1.o): in function `NTL::DivRem(NTL::GF2X&, NTL::GF2X&, NTL::GF2X const&, NTL::GF2X const&)':
try.cpp: GF2X1.cpp:(.text+0x...): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(GF2X1.o):GF2X1.cpp:(.text+0x...): more undefined references to `operator delete(void*, unsigned long)' follow
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o): in function `NTL::FFTRep::DoSetSize(long, long) [clone .cold]':
try.cpp: ZZ_pX.cpp:(.text.unlikely+0x19f): undefined reference to `__cxa_throw_bad_array_new_length'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: ZZ_pX.cpp:(.text.unlikely+0x1bc): undefined reference to `__cxa_throw_bad_array_new_length'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o): in function `NTL::ZZ_pXModRep::SetSize(long) [clone .cold]':
try.cpp: ZZ_pX.cpp:(.text.unlikely+0x1cd): undefined reference to `__cxa_throw_bad_array_new_length'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: ZZ_pX.cpp:(.text.unlikely+0x1d2): undefined reference to `__cxa_throw_bad_array_new_length'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o): in function `NTL::FromFFTRep(NTL::ZZ_pXModRep&, NTL::FFTRep const&) [clone .cold]':
try.cpp: ZZ_pX.cpp:(.text.unlikely+0x1fb): undefined reference to `__cxa_throw_bad_array_new_length'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o):ZZ_pX.cpp:(.text.unlikely+0x200): more undefined references to `__cxa_throw_bad_array_new_length' follow
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o): in function `NTL::ZZ_pXModulus::ZZ_pXModulus(NTL::ZZ_pX const&) [clone .cold]':
try.cpp: ZZ_pX.cpp:(.text.unlikely+0x9d3): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: ZZ_pX.cpp:(.text.unlikely+0x9e0): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX.o): in function `NTL::ZZ_pXModulus::~ZZ_pXModulus()':
try.cpp: ZZ_pX.cpp:(.text._ZN3NTL12ZZ_pXModulusD2Ev[_ZN3NTL12ZZ_pXModulusD5Ev]+0x49): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: ZZ_pX.cpp:(.text._ZN3NTL12ZZ_pXModulusD2Ev[_ZN3NTL12ZZ_pXModulusD5Ev]+0x56): undefined reference to `operator delete(void*, unsigned long)'
try.cpp: /software/compilers/gcc/gcc-9.2.0-full+isl+binutils/bin/ld: /scratch_gpfs_na2700_60/bdolbeaur/SC/supercop-20191017/supercop-data/genji346/amd64/lib/libntl.a(ZZ_pX1.o): in function `NTL::TraceMod(NTL::ZZ_p&, NTL::ZZ_pX const&, NTL::ZZ_pXModulus const&)':
try.cpp: ...

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

Compiler output

Implementation: crypto_kem/hqc1921/opt
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gf2x_avx2.c: gf2x_avx2.c:87:19: error: use of unknown builtin '__builtin_shuffle' [-Wimplicit-function-declaration]
gf2x_avx2.c: rightVector = __builtin_shuffle(
gf2x_avx2.c: ^
gf2x_avx2.c: gf2x_avx2.c:87:17: error: assigning to 'v8uint32' (vector of 8 'uint32_t' values) from incompatible type 'int'
gf2x_avx2.c: rightVector = __builtin_shuffle(
gf2x_avx2.c: ^ ~~~~~~~~~~~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:89:16: error: assigning to 'v8uint32' (vector of 8 'uint32_t' values) from incompatible type 'int'
gf2x_avx2.c: leftVector = __builtin_shuffle(
gf2x_avx2.c: ^ ~~~~~~~~~~~~~~~~~~
gf2x_avx2.c: 3 errors generated.

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

Compiler output

Implementation: crypto_kem/hqc1921/opt
Compiler: icc -march=broadwell -mtune=broadwell -O2 -fomit-frame-pointer
gf2x_avx2.c: gf2x_avx2.c(76): error: vector operation not supported with these operand types
gf2x_avx2.c: const v8uint32 rightPerm = countVector + distInts;
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: gf2x_avx2.c(77): error: vector operation not supported with these operand types
gf2x_avx2.c: const v8uint32 leftPerm = countVector + distInts + 1;
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: gf2x_avx2.c(87): error: "__builtin_shuffle" is not supported
gf2x_avx2.c: rightVector = __builtin_shuffle(
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: gf2x_avx2.c(89): error: "__builtin_shuffle" is not supported
gf2x_avx2.c: leftVector = __builtin_shuffle(
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: gf2x_avx2.c(92): error: vector operation not supported with these operand types
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: gf2x_avx2.c(92): error: vector operation not supported with these operand types
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ^
gf2x_avx2.c:
gf2x_avx2.c: compilation aborted for gf2x_avx2.c (code 2)

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