Implementation notes: amd64, cel02, crypto_kem/hqc2561

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_kem
Primitive: hqc2561
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
398930037661 0 068533 920 1720T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
507297613408 0 041027 912 1688T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
646156811720 32 551543970 4120 6640T:refclang++_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
846528612632 0 039771 912 1688T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
992989625303 32 551566951 4136 6768T:refg++_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1034047010149 0 036107 904 1656T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1114558613397 32 551551825 4136 6736T:refg++_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1117292212883 32 551550840 4136 6736T:refg++_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1232111610415 32 551547184 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: 0x55aad2520660: v4i64 = X86ISD::VTRUNC 0x55aad2520530
try.cpp: 0x55aad2520530: v16i32 = vselect 0x55aad252bee0, 0x55aad24aff30, 0x55aad2520400
try.cpp: 0x55aad252bee0: v4i1 = X86ISD::PCMPGTM 0x55aad2509070, 0x55aad2505a50
try.cpp: 0x55aad2509070: v4i64 = X86ISD::VBROADCAST 0x55aad24ac4b0
try.cpp: 0x55aad24ac4b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55aad24199d0, 0x55aad25010b0, undef:i64
try.cpp: 0x55aad25010b0: i64,ch = CopyFromReg 0x55aad24199d0, Register:i64 %vreg50
try.cpp: 0x55aad2505cb0: i64 = Register %vreg50
try.cpp: 0x55aad24ad980: i64 = undef
try.cpp: 0x55aad2505a50: v4i64,ch = CopyFromReg 0x55aad24199d0, Register:v4i64 %vreg13
try.cpp: 0x55aad25098c0: v4i64 = Register %vreg13
try.cpp: 0x55aad24aff30: v16i32 = X86ISD::VBROADCAST 0x55aad25092d0
try.cpp: 0x55aad25092d0: i32,ch = load<LD4[ConstantPool]> 0x55aad24199d0, 0x55aad24aaa70, undef:i64
try.cpp: 0x55aad24aaa70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55aad24fccb0: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55aad24ad980: i64 = undef
try.cpp: 0x55aad2520400: 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: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: i32 = Constant<0>
try.cpp: 0x55aad25202d0: 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: 0x5573c9a9f6d0: v4i64 = X86ISD::VTRUNC 0x5573c9a9f5a0
try.cpp: 0x5573c9a9f5a0: v16i32 = vselect 0x5573c9a9a0a0, 0x5573c9a19980, 0x5573c9a9f470
try.cpp: 0x5573c9a9a0a0: v4i1 = X86ISD::PCMPGTM 0x5573c9a85f10, 0x5573c9a824a0
try.cpp: 0x5573c9a85f10: v4i64 = X86ISD::VBROADCAST 0x5573c9a19e40
try.cpp: 0x5573c9a19e40: i64,ch = load<LD8[%lsr.iv6971]> 0x5573c997fa80, 0x5573c9a21bc0, undef:i64
try.cpp: 0x5573c9a21bc0: i64,ch = CopyFromReg 0x5573c997fa80, Register:i64 %vreg50
try.cpp: 0x5573c9a82700: i64 = Register %vreg50
try.cpp: 0x5573c9a2f120: i64 = undef
try.cpp: 0x5573c9a824a0: v4i64,ch = CopyFromReg 0x5573c997fa80, Register:v4i64 %vreg13
try.cpp: 0x5573c9a86760: v4i64 = Register %vreg13
try.cpp: 0x5573c9a19980: v16i32 = X86ISD::VBROADCAST 0x5573c9a86170
try.cpp: 0x5573c9a86170: i32,ch = load<LD4[ConstantPool]> 0x5573c997fa80, 0x5573c9a1c320, undef:i64
try.cpp: 0x5573c9a1c320: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x5573c9a2faa0: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x5573c9a2f120: i64 = undef
try.cpp: 0x5573c9a9f470: 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: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: i32 = Constant<0>
try.cpp: 0x5573c9a9f340: 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: 0x55bab2ecc0f0: v4i64 = X86ISD::VTRUNC 0x55bab2ecbfc0
try.cpp: 0x55bab2ecbfc0: v16i32 = vselect 0x55bab2ec6ac0, 0x55bab2e6b2b0, 0x55bab2ecbe90
try.cpp: 0x55bab2ec6ac0: v4i1 = X86ISD::PCMPGTM 0x55bab2ec5ab0, 0x55bab2ec1640
try.cpp: 0x55bab2ec5ab0: v4i64 = X86ISD::VBROADCAST 0x55bab2e61240
try.cpp: 0x55bab2e61240: i64,ch = load<LD8[%lsr.iv6971]> 0x55bab2dd49e0, 0x55bab2eb7380, undef:i64
try.cpp: 0x55bab2eb7380: i64,ch = CopyFromReg 0x55bab2dd49e0, Register:i64 %vreg50
try.cpp: 0x55bab2ec18a0: i64 = Register %vreg50
try.cpp: 0x55bab2e62710: i64 = undef
try.cpp: 0x55bab2ec1640: v4i64,ch = CopyFromReg 0x55bab2dd49e0, Register:v4i64 %vreg13
try.cpp: 0x55bab2ec6300: v4i64 = Register %vreg13
try.cpp: 0x55bab2e6b2b0: v16i32 = X86ISD::VBROADCAST 0x55bab2ec5d10
try.cpp: 0x55bab2ec5d10: i32,ch = load<LD4[ConstantPool]> 0x55bab2dd49e0, 0x55bab2e74b30, undef:i64
try.cpp: 0x55bab2e74b30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.cpp: 0x55bab2e249f0: i64 = TargetConstantPool<i32 1> 0
try.cpp: 0x55bab2e62710: i64 = undef
try.cpp: 0x55bab2ecbe90: 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: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: i32 = Constant<0>
try.cpp: 0x55bab2ecbd60: 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