Implementation notes: amd64, cel02, crypto_kem/hqc1921

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: hqc1921
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
264243236907 0 067765 920 1720T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
348286813454 0 041059 912 1688T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
498568010404 32 551547184 4128 6704T:refg++_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
621781012616 0 039755 912 1688T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
714693410132 0 036091 904 1656T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
749971625485 32 551567143 4136 6768T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
809058412870 32 551550840 4136 6736T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
848204413427 32 551551889 4136 6736T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
859645611740 32 551544026 4120 6640T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-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: 0x555adda19a70: v4i64 = X86ISD::VTRUNC 0x555adda19940
try.cpp: 0x555adda19940: v16i32 = vselect 0x555adda2ac40, 0x555add9cac30, 0x555adda19810
try.cpp: 0x555adda2ac40: v4i1 = X86ISD::PCMPGTM 0x555adda118c0, 0x555adda0d450
try.cpp: 0x555adda118c0: v4i64 = X86ISD::VBROADCAST 0x555add9b6840
try.cpp: 0x555add9b6840: i64,ch = load<LD8[%lsr.iv6971]> 0x555add9209c0, 0x555add9fa2f0, undef:i64
try.cpp: 0x555add9fa2f0: i64,ch = CopyFromReg 0x555add9209c0, Register:i64 %vreg50
try.cpp: 0x555adda0d6b0: i64 = Register %vreg50
try.cpp: 0x555add9b7d10: i64 = undef
try.cpp: 0x555adda0d450: v4i64,ch = CopyFromReg 0x555add9209c0, Register:v4i64 %vreg13
try.cpp: 0x555adda12110: v4i64 = Register %vreg13
try.cpp: 0x555add9cac30: v16i32 = X86ISD::VBROADCAST 0x555adda11b20
try.cpp: 0x555adda11b20: i32,ch = load<LD4[ConstantPool]> 0x555add9209c0, 0x555add9b1c70, undef:i64
try.cpp: 0x555add9b1c70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x555add9fb930: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x555add9b7d10: i64 = undef
try.cpp: 0x555adda19810: 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: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: i32 = Constant<0>
try.cpp: 0x555adda196e0: 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: 0x562c3653b170: v4i64 = X86ISD::VTRUNC 0x562c3653b040
try.cpp: 0x562c3653b040: v16i32 = vselect 0x562c36537b50, 0x562c364df1d0, 0x562c3653af10
try.cpp: 0x562c36537b50: v4i1 = X86ISD::PCMPGTM 0x562c3652f6e0, 0x562c3652b6c0
try.cpp: 0x562c3652f6e0: v4i64 = X86ISD::VBROADCAST 0x562c364df690
try.cpp: 0x562c364df690: i64,ch = load<LD8[%lsr.iv6971]> 0x562c36428a60, 0x562c364c7a30, undef:i64
try.cpp: 0x562c364c7a30: i64,ch = CopyFromReg 0x562c36428a60, Register:i64 %vreg50
try.cpp: 0x562c3652b920: i64 = Register %vreg50
try.cpp: 0x562c364d35a0: i64 = undef
try.cpp: 0x562c3652b6c0: v4i64,ch = CopyFromReg 0x562c36428a60, Register:v4i64 %vreg13
try.cpp: 0x562c3652ff30: v4i64 = Register %vreg13
try.cpp: 0x562c364df1d0: v16i32 = X86ISD::VBROADCAST 0x562c3652f940
try.cpp: 0x562c3652f940: i32,ch = load<LD4[ConstantPool]> 0x562c36428a60, 0x562c364cc860, undef:i64
try.cpp: 0x562c364cc860: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x562c364d3f20: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x562c364d35a0: i64 = undef
try.cpp: 0x562c3653af10: 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: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: i32 = Constant<0>
try.cpp: 0x562c3653ade0: 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: 0x565537c90cb0: v4i64 = X86ISD::VTRUNC 0x565537c90b80
try.cpp: 0x565537c90b80: v16i32 = vselect 0x565537c8b680, 0x565537c1d1a0, 0x565537c90a50
try.cpp: 0x565537c8b680: v4i1 = X86ISD::PCMPGTM 0x565537c77340, 0x565537c72ed0
try.cpp: 0x565537c77340: v4i64 = X86ISD::VBROADCAST 0x565537c26ec0
try.cpp: 0x565537c26ec0: i64,ch = load<LD8[%lsr.iv6971]> 0x565537b86a60, 0x565537c6dd30, undef:i64
try.cpp: 0x565537c6dd30: i64,ch = CopyFromReg 0x565537b86a60, Register:i64 %vreg50
try.cpp: 0x565537c73130: i64 = Register %vreg50
try.cpp: 0x565537c28390: i64 = undef
try.cpp: 0x565537c72ed0: v4i64,ch = CopyFromReg 0x565537b86a60, Register:v4i64 %vreg13
try.cpp: 0x565537c77b90: v4i64 = Register %vreg13
try.cpp: 0x565537c1d1a0: v16i32 = X86ISD::VBROADCAST 0x565537c775a0
try.cpp: 0x565537c775a0: i32,ch = load<LD4[ConstantPool]> 0x565537b86a60, 0x565537c12160, undef:i64
try.cpp: 0x565537c12160: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x565537c5c9d0: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x565537c28390: i64 = undef
try.cpp: 0x565537c90a50: 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: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: i32 = Constant<0>
try.cpp: 0x565537c90920: 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