Implementation notes: amd64, cel02, crypto_sign/qtesla128

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: qtesla128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
353570686905 0 0118672 872 1664T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
665805650070 0 078696 872 1632T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
715665659337 0 087793 848 1600T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
734087849160 0 077312 872 1632T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2342026647714 0 074616 864 1600T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Checksum failure

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sign.c: sign.c:106:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^
sign.c: sign.c:106:13: note: use function 'labs' instead
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^~~
sign.c: labs
sign.c: sign.c:146:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(left) > right);
sign.c: ^
sign.c: sign.c:146:13: note: use function 'labs' instead
sign.c: ret |= (abs(left) > right);
sign.c: ^~~
sign.c: labs
sign.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x564572539f80: v4i64 = X86ISD::VTRUNC 0x564572539e50
try.c: 0x564572539e50: v16i32 = vselect 0x56457252bd80, 0x5645724e1bc0, 0x564572539d20
try.c: 0x56457252bd80: v4i1 = X86ISD::PCMPGTM 0x564572533950, 0x56457252f4e0
try.c: 0x564572533950: v4i64 = X86ISD::VBROADCAST 0x5645724d24a0
try.c: 0x5645724d24a0: i64,ch = load<LD8[%lsr.iv6971]> 0x564572444950, 0x56457251d5b0, undef:i64
try.c: 0x56457251d5b0: i64,ch = CopyFromReg 0x564572444950, Register:i64 %vreg50
try.c: 0x56457252f740: i64 = Register %vreg50
try.c: 0x5645724d3970: i64 = undef
try.c: 0x56457252f4e0: v4i64,ch = CopyFromReg 0x564572444950, Register:v4i64 %vreg13
try.c: 0x5645725341a0: v4i64 = Register %vreg13
try.c: 0x5645724e1bc0: v16i32 = X86ISD::VBROADCAST 0x564572533bb0
try.c: 0x564572533bb0: i32,ch = load<LD4[ConstantPool]> 0x564572444950, 0x5645724de3a0, undef:i64
try.c: 0x5645724de3a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56457251e7b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5645724d3970: i64 = undef
try.c: 0x564572539d20: 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.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: 0x564572539bf0: i32 = Constant<0>
try.c: ...

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
sign.c: sign.c:106:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^
sign.c: sign.c:106:13: note: use function 'labs' instead
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^~~
sign.c: labs
sign.c: sign.c:146:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(left) > right);
sign.c: ^
sign.c: sign.c:146:13: note: use function 'labs' instead
sign.c: ret |= (abs(left) > right);
sign.c: ^~~
sign.c: labs
sign.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x563f99cb4b20: v4i64 = X86ISD::VTRUNC 0x563f99cb49f0
try.c: 0x563f99cb49f0: v16i32 = vselect 0x563f99cb1500, 0x563f99c4ae70, 0x563f99cb48c0
try.c: 0x563f99cb1500: v4i1 = X86ISD::PCMPGTM 0x563f99ca8c90, 0x563f99ca4820
try.c: 0x563f99ca8c90: v4i64 = X86ISD::VBROADCAST 0x563f99c4b330
try.c: 0x563f99c4b330: i64,ch = load<LD8[%lsr.iv6971]> 0x563f99ba2a10, 0x563f99c45600, undef:i64
try.c: 0x563f99c45600: i64,ch = CopyFromReg 0x563f99ba2a10, Register:i64 %vreg50
try.c: 0x563f99ca4a80: i64 = Register %vreg50
try.c: 0x563f99c3d240: i64 = undef
try.c: 0x563f99ca4820: v4i64,ch = CopyFromReg 0x563f99ba2a10, Register:v4i64 %vreg13
try.c: 0x563f99ca94e0: v4i64 = Register %vreg13
try.c: 0x563f99c4ae70: v16i32 = X86ISD::VBROADCAST 0x563f99ca8ef0
try.c: 0x563f99ca8ef0: i32,ch = load<LD4[ConstantPool]> 0x563f99ba2a10, 0x563f99c43bd0, undef:i64
try.c: 0x563f99c43bd0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563f99c3dbc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563f99c3d240: i64 = undef
try.c: 0x563f99cb48c0: 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.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: 0x563f99cb4790: i32 = Constant<0>
try.c: ...

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
sign.c: sign.c:106:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^
sign.c: sign.c:106:13: note: use function 'labs' instead
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^~~
sign.c: labs
sign.c: sign.c:146:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(left) > right);
sign.c: ^
sign.c: sign.c:146:13: note: use function 'labs' instead
sign.c: ret |= (abs(left) > right);
sign.c: ^~~
sign.c: labs
sign.c: 2 warnings generated.
try.c: fatal error: error in backend: Cannot select: 0x558a8e239360: v4i64 = X86ISD::VTRUNC 0x558a8e239230
try.c: 0x558a8e239230: v16i32 = vselect 0x558a8e241360, 0x558a8e1c7480, 0x558a8e239100
try.c: 0x558a8e241360: v4i1 = X86ISD::PCMPGTM 0x558a8e21d540, 0x558a8e218910
try.c: 0x558a8e21d540: v4i64 = X86ISD::VBROADCAST 0x558a8e1c4620
try.c: 0x558a8e1c4620: i64,ch = load<LD8[%lsr.iv6971]> 0x558a8e12e930, 0x558a8e205820, undef:i64
try.c: 0x558a8e205820: i64,ch = CopyFromReg 0x558a8e12e930, Register:i64 %vreg50
try.c: 0x558a8e218b70: i64 = Register %vreg50
try.c: 0x558a8e1c5af0: i64 = undef
try.c: 0x558a8e218910: v4i64,ch = CopyFromReg 0x558a8e12e930, Register:v4i64 %vreg13
try.c: 0x558a8e21dd90: v4i64 = Register %vreg13
try.c: 0x558a8e1c7480: v16i32 = X86ISD::VBROADCAST 0x558a8e21d7a0
try.c: 0x558a8e21d7a0: i32,ch = load<LD4[ConstantPool]> 0x558a8e12e930, 0x558a8e1c0390, undef:i64
try.c: 0x558a8e1c0390: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558a8e216000: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558a8e1c5af0: i64 = undef
try.c: 0x558a8e239100: 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.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: 0x558a8e238fd0: i32 = Constant<0>
try.c: ...

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
sign.c: sign.c:106:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^
sign.c: sign.c:106:13: note: use function 'labs' instead
sign.c: ret |= (abs(val) > (PARAM_B-PARAM_U));
sign.c: ^~~
sign.c: labs
sign.c: sign.c:146:13: warning: absolute value function 'abs' given an argument of type 'int64_t' (aka 'long') but has parameter of type 'int' which may cause truncation of value [-Wabsolute-value]
sign.c: ret |= (abs(left) > right);
sign.c: ^
sign.c: sign.c:146:13: note: use function 'labs' instead
sign.c: ret |= (abs(left) > right);
sign.c: ^~~
sign.c: labs
sign.c: 2 warnings generated.

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