Implementation notes: amd64, cel02, crypto_kem/hqc2562

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: hqc2562
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
540491411925 0 038939 912 1688T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
722950212714 32 551551049 4136 6736T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
733281411778 32 551544034 4120 6640T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
786640838555 0 069341 920 1720T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
955263012619 0 040091 912 1688T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1123935610176 0 036131 904 1656T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1251736826968 32 551568471 4136 6768T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1352985012271 32 551550080 4136 6736T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1422622010438 32 551547248 4128 6704T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gf2x_avx2.c: gf2x_avx2.c:76:42: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: const v8uint32 rightPerm = countVector + distInts;
gf2x_avx2.c: ~~~~~~~~~~~ ^ ~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:77:41: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: const v8uint32 leftPerm = countVector + distInts + 1;
gf2x_avx2.c: ~~~~~~~~~~~ ^ ~~~~~~~~
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: gf2x_avx2.c:92:26: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ~~~~~~~~~~~^ ~~~~~~~~
gf2x_avx2.c: gf2x_avx2.c:92:49: error: cannot convert between vector values of different size ('v8uint32' (vector of 8 'uint32_t' values) and 'int')
gf2x_avx2.c: shifted = rightVector>>distBits | leftVector<<minDistBits;
gf2x_avx2.c: ~~~~~~~~~~^ ~~~~~~~~~~~
gf2x_avx2.c: 7 errors generated.

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rng.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
try.cpp: fatal error: error in backend: Cannot select: 0x55cc0802efc0: v4i64 = X86ISD::VTRUNC 0x55cc0802ee90
try.cpp: 0x55cc0802ee90: v16i32 = vselect 0x55cc08019690, 0x55cc07fb8e30, 0x55cc0802ed60
try.cpp: 0x55cc08019690: v4i1 = X86ISD::PCMPGTM 0x55cc08016660, 0x55cc080121f0
try.cpp: 0x55cc08016660: v4i64 = X86ISD::VBROADCAST 0x55cc07fc67a0
try.cpp: 0x55cc07fc67a0: i64,ch = load<LD8[%lsr.iv6971]> 0x55cc07f259c0, 0x55cc080032c0, undef:i64
try.cpp: 0x55cc080032c0: i64,ch = CopyFromReg 0x55cc07f259c0, Register:i64 %vreg50
try.cpp: 0x55cc08012450: i64 = Register %vreg50
try.cpp: 0x55cc07fc7c70: i64 = undef
try.cpp: 0x55cc080121f0: v4i64,ch = CopyFromReg 0x55cc07f259c0, Register:v4i64 %vreg13
try.cpp: 0x55cc08016eb0: v4i64 = Register %vreg13
try.cpp: 0x55cc07fb8e30: v16i32 = X86ISD::VBROADCAST 0x55cc080168c0
try.cpp: 0x55cc080168c0: i32,ch = load<LD4[ConstantPool]> 0x55cc07f259c0, 0x55cc07fbfd20, undef:i64
try.cpp: 0x55cc07fbfd20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55cc08000c20: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55cc07fc7c70: i64 = undef
try.cpp: 0x55cc0802ed60: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: 0x55cc0802ec30: i32 = Constant<0>
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rng.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
try.cpp: fatal error: error in backend: Cannot select: 0x56392ec47980: v4i64 = X86ISD::VTRUNC 0x56392ec47850
try.cpp: 0x56392ec47850: v16i32 = vselect 0x56392ec42350, 0x56392ebd5b20, 0x56392ec47720
try.cpp: 0x56392ec42350: v4i1 = X86ISD::PCMPGTM 0x56392ec41000, 0x56392ec3c3d0
try.cpp: 0x56392ec41000: v4i64 = X86ISD::VBROADCAST 0x56392ebd5fe0
try.cpp: 0x56392ebd5fe0: i64,ch = load<LD8[%lsr.iv6971]> 0x56392eb39a80, 0x56392ebdaae0, undef:i64
try.cpp: 0x56392ebdaae0: i64,ch = CopyFromReg 0x56392eb39a80, Register:i64 %vreg50
try.cpp: 0x56392ec3c630: i64 = Register %vreg50
try.cpp: 0x56392ebe4840: i64 = undef
try.cpp: 0x56392ec3c3d0: v4i64,ch = CopyFromReg 0x56392eb39a80, Register:v4i64 %vreg13
try.cpp: 0x56392ec41850: v4i64 = Register %vreg13
try.cpp: 0x56392ebd5b20: v16i32 = X86ISD::VBROADCAST 0x56392ec41260
try.cpp: 0x56392ec41260: i32,ch = load<LD4[ConstantPool]> 0x56392eb39a80, 0x56392ebd90b0, undef:i64
try.cpp: 0x56392ebd90b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x56392ebe51c0: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x56392ebe4840: i64 = undef
try.cpp: 0x56392ec47720: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: 0x56392ec475f0: i32 = Constant<0>
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rng.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
try.cpp: fatal error: error in backend: Cannot select: 0x556a5d894dd0: v4i64 = X86ISD::VTRUNC 0x556a5d894ca0
try.cpp: 0x556a5d894ca0: v16i32 = vselect 0x556a5d8840e0, 0x556a5d81d660, 0x556a5d894b70
try.cpp: 0x556a5d8840e0: v4i1 = X86ISD::PCMPGTM 0x556a5d87d480, 0x556a5d879010
try.cpp: 0x556a5d87d480: v4i64 = X86ISD::VBROADCAST 0x556a5d81a800
try.cpp: 0x556a5d81a800: i64,ch = load<LD8[%lsr.iv6971]> 0x556a5d78c9c0, 0x556a5d863400, undef:i64
try.cpp: 0x556a5d863400: i64,ch = CopyFromReg 0x556a5d78c9c0, Register:i64 %vreg50
try.cpp: 0x556a5d879270: i64 = Register %vreg50
try.cpp: 0x556a5d81bcd0: i64 = undef
try.cpp: 0x556a5d879010: v4i64,ch = CopyFromReg 0x556a5d78c9c0, Register:v4i64 %vreg13
try.cpp: 0x556a5d87dcd0: v4i64 = Register %vreg13
try.cpp: 0x556a5d81d660: v16i32 = X86ISD::VBROADCAST 0x556a5d87d6e0
try.cpp: 0x556a5d87d6e0: i32,ch = load<LD4[ConstantPool]> 0x556a5d78c9c0, 0x556a5d820a60, undef:i64
try.cpp: 0x556a5d820a60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x556a5d86b110: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x556a5d81bcd0: i64 = undef
try.cpp: 0x556a5d894b70: v16i32 = BUILD_VECTOR Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>, Constant:i32<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: 0x556a5d894a40: i32 = Constant<0>
try.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
rng.c: clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang++ -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref