Implementation notes: amd64, cel02, crypto_kem/hqc1281

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: hqc1281
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
225839612679 0 039923 912 1688T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
228664213486 0 041219 912 1688T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
247806412942 32 551550968 4136 6736T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
248284613452 32 551552017 4136 6736T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
273513410169 0 036115 904 1656T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
294112638732 0 069733 920 1720T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
380299427777 32 551569503 4136 6768T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
459649211757 32 551544026 4120 6640T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
482996810431 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: 0x55c89e68c190: v4i64 = X86ISD::VTRUNC 0x55c89e68c060
try.cpp: 0x55c89e68c060: v16i32 = vselect 0x55c89e681130, 0x55c89e6166f0, 0x55c89e68bf30
try.cpp: 0x55c89e681130: v4i1 = X86ISD::PCMPGTM 0x55c89e675850, 0x55c89e6713e0
try.cpp: 0x55c89e675850: v4i64 = X86ISD::VBROADCAST 0x55c89e613890
try.cpp: 0x55c89e613890: i64,ch = load<LD8[%lsr.iv6971]> 0x55c89e5849a0, 0x55c89e667060, undef:i64
try.cpp: 0x55c89e667060: i64,ch = CopyFromReg 0x55c89e5849a0, Register:i64 %vreg50
try.cpp: 0x55c89e671640: i64 = Register %vreg50
try.cpp: 0x55c89e614d60: i64 = undef
try.cpp: 0x55c89e6713e0: v4i64,ch = CopyFromReg 0x55c89e5849a0, Register:v4i64 %vreg13
try.cpp: 0x55c89e6760a0: v4i64 = Register %vreg13
try.cpp: 0x55c89e6166f0: v16i32 = X86ISD::VBROADCAST 0x55c89e675ab0
try.cpp: 0x55c89e675ab0: i32,ch = load<LD4[ConstantPool]> 0x55c89e5849a0, 0x55c89e6371f0, undef:i64
try.cpp: 0x55c89e6371f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55c89e624290: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55c89e614d60: i64 = undef
try.cpp: 0x55c89e68bf30: 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: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: i32 = Constant<0>
try.cpp: 0x55c89e68be00: 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: 0x559ffdee0c70: v4i64 = X86ISD::VTRUNC 0x559ffdee0b40
try.cpp: 0x559ffdee0b40: v16i32 = vselect 0x559ffded0b90, 0x559ffde5bb50, 0x559ffdee0a10
try.cpp: 0x559ffded0b90: v4i1 = X86ISD::PCMPGTM 0x559ffdec7f10, 0x559ffdec3aa0
try.cpp: 0x559ffdec7f10: v4i64 = X86ISD::VBROADCAST 0x559ffde5c010
try.cpp: 0x559ffde5c010: i64,ch = load<LD8[%lsr.iv6971]> 0x559ffddc0a80, 0x559ffde6cdd0, undef:i64
try.cpp: 0x559ffde6cdd0: i64,ch = CopyFromReg 0x559ffddc0a80, Register:i64 %vreg50
try.cpp: 0x559ffdec3d00: i64 = Register %vreg50
try.cpp: 0x559ffde3ee90: i64 = undef
try.cpp: 0x559ffdec3aa0: v4i64,ch = CopyFromReg 0x559ffddc0a80, Register:v4i64 %vreg13
try.cpp: 0x559ffdec8760: v4i64 = Register %vreg13
try.cpp: 0x559ffde5bb50: v16i32 = X86ISD::VBROADCAST 0x559ffdec8170
try.cpp: 0x559ffdec8170: i32,ch = load<LD4[ConstantPool]> 0x559ffddc0a80, 0x559ffde6b3a0, undef:i64
try.cpp: 0x559ffde6b3a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x559ffde3f810: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x559ffde3ee90: i64 = undef
try.cpp: 0x559ffdee0a10: 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: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: i32 = Constant<0>
try.cpp: 0x559ffdee08e0: 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: 0x55dd0cf56cb0: v4i64 = X86ISD::VTRUNC 0x55dd0cf56b80
try.cpp: 0x55dd0cf56b80: v16i32 = vselect 0x55dd0cf53690, 0x55dd0cee3ec0, 0x55dd0cf56a50
try.cpp: 0x55dd0cf53690: v4i1 = X86ISD::PCMPGTM 0x55dd0cf3cfc0, 0x55dd0cf3aae0
try.cpp: 0x55dd0cf3cfc0: v4i64 = X86ISD::VBROADCAST 0x55dd0cedfa40
try.cpp: 0x55dd0cedfa40: i64,ch = load<LD8[%lsr.iv6971]> 0x55dd0ce4d9c0, 0x55dd0cf34d30, undef:i64
try.cpp: 0x55dd0cf34d30: i64,ch = CopyFromReg 0x55dd0ce4d9c0, Register:i64 %vreg50
try.cpp: 0x55dd0cf3ad40: i64 = Register %vreg50
try.cpp: 0x55dd0cee0f10: i64 = undef
try.cpp: 0x55dd0cf3aae0: v4i64,ch = CopyFromReg 0x55dd0ce4d9c0, Register:v4i64 %vreg13
try.cpp: 0x55dd0cf3d810: v4i64 = Register %vreg13
try.cpp: 0x55dd0cee3ec0: v16i32 = X86ISD::VBROADCAST 0x55dd0cf3d220
try.cpp: 0x55dd0cf3d220: i32,ch = load<LD4[ConstantPool]> 0x55dd0ce4d9c0, 0x55dd0cef0320, undef:i64
try.cpp: 0x55dd0cef0320: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55dd0cf03140: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55dd0cee0f10: i64 = undef
try.cpp: 0x55dd0cf56a50: 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: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: i32 = Constant<0>
try.cpp: 0x55dd0cf56920: 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