Implementation notes: amd64, cel02, crypto_sign/mqdss64

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: mqdss64
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3629190023103 0 054551 848 1664T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5512515010982 0 037511 840 1600T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5598917813108 0 041391 848 1632T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
5738148612950 0 040775 848 1632T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
66308040610262 0 038143 848 1632T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
68872624621928 0 053487 848 1664T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
74014179410658 0 038983 848 1632T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
75527155018896 0 047244 824 1600T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
8627903068530 0 035135 840 1600T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Checksum failure

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55942e8888c0: v4i64 = X86ISD::VTRUNC 0x55942e888790
try.c: 0x55942e888790: v16i32 = vselect 0x55942e8852a0, 0x55942e80a900, 0x55942e888660
try.c: 0x55942e8852a0: v4i1 = X86ISD::PCMPGTM 0x55942e865920, 0x55942e8614b0
try.c: 0x55942e865920: v4i64 = X86ISD::VBROADCAST 0x55942e814250
try.c: 0x55942e814250: i64,ch = load<LD8[%lsr.iv6971]> 0x55942e776960, 0x55942e82c610, undef:i64
try.c: 0x55942e82c610: i64,ch = CopyFromReg 0x55942e776960, Register:i64 %vreg50
try.c: 0x55942e861710: i64 = Register %vreg50
try.c: 0x55942e808f70: i64 = undef
try.c: 0x55942e8614b0: v4i64,ch = CopyFromReg 0x55942e776960, Register:v4i64 %vreg13
try.c: 0x55942e866170: v4i64 = Register %vreg13
try.c: 0x55942e80a900: v16i32 = X86ISD::VBROADCAST 0x55942e865b80
try.c: 0x55942e865b80: i32,ch = load<LD4[ConstantPool]> 0x55942e776960, 0x55942e813830, undef:i64
try.c: 0x55942e813830: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55942e832610: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55942e808f70: i64 = undef
try.c: 0x55942e888660: 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: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: i32 = Constant<0>
try.c: 0x55942e888530: 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:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55f40db31410: v4i64 = X86ISD::VTRUNC 0x55f40db312e0
try.c: 0x55f40db312e0: v16i32 = vselect 0x55f40db14160, 0x55f40dab5d10, 0x55f40db311b0
try.c: 0x55f40db14160: v4i1 = X86ISD::PCMPGTM 0x55f40db0d750, 0x55f40db092e0
try.c: 0x55f40db0d750: v4i64 = X86ISD::VBROADCAST 0x55f40dab61d0
try.c: 0x55f40dab61d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55f40da06a30, 0x55f40daa0850, undef:i64
try.c: 0x55f40daa0850: i64,ch = CopyFromReg 0x55f40da06a30, Register:i64 %vreg50
try.c: 0x55f40db09540: i64 = Register %vreg50
try.c: 0x55f40da84250: i64 = undef
try.c: 0x55f40db092e0: v4i64,ch = CopyFromReg 0x55f40da06a30, Register:v4i64 %vreg13
try.c: 0x55f40db0dfa0: v4i64 = Register %vreg13
try.c: 0x55f40dab5d10: v16i32 = X86ISD::VBROADCAST 0x55f40db0d9b0
try.c: 0x55f40db0d9b0: i32,ch = load<LD4[ConstantPool]> 0x55f40da06a30, 0x55f40dab86b0, undef:i64
try.c: 0x55f40dab86b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f40da84bd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f40da84250: i64 = undef
try.c: 0x55f40db311b0: 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: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: i32 = Constant<0>
try.c: 0x55f40db31080: 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:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x55a2817f4320: v4i64 = X86ISD::VTRUNC 0x55a2817f41f0
try.c: 0x55a2817f41f0: v16i32 = vselect 0x55a2817df9f0, 0x55a281794be0, 0x55a2817f40c0
try.c: 0x55a2817df9f0: v4i1 = X86ISD::PCMPGTM 0x55a2817dc9c0, 0x55a2817d8550
try.c: 0x55a2817dc9c0: v4i64 = X86ISD::VBROADCAST 0x55a2817a8fb0
try.c: 0x55a2817a8fb0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a2816ed920, 0x55a2817c6460, undef:i64
try.c: 0x55a2817c6460: i64,ch = CopyFromReg 0x55a2816ed920, Register:i64 %vreg50
try.c: 0x55a2817d87b0: i64 = Register %vreg50
try.c: 0x55a281793250: i64 = undef
try.c: 0x55a2817d8550: v4i64,ch = CopyFromReg 0x55a2816ed920, Register:v4i64 %vreg13
try.c: 0x55a2817dd210: v4i64 = Register %vreg13
try.c: 0x55a281794be0: v16i32 = X86ISD::VBROADCAST 0x55a2817dcc20
try.c: 0x55a2817dcc20: i32,ch = load<LD4[ConstantPool]> 0x55a2816ed920, 0x55a2817a8590, undef:i64
try.c: 0x55a2817a8590: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a2817c7660: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a281793250: i64 = undef
try.c: 0x55a2817f40c0: 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: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: i32 = Constant<0>
try.c: 0x55a2817f3f90: 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:avx2

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
gf31.c: gf31.c:14:20: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: __m256i _w31 = _mm256_set1_epi16(31);
gf31.c: ^
gf31.c: gf31.c:18:13: error: always_inline function '_mm256_loadu_si256' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: x = _mm256_loadu_si256((__m256i const *) (in + 16*i));
gf31.c: ^
gf31.c: gf31.c:19:13: error: always_inline function '_mm256_xor_si256' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: x = _mm256_xor_si256(x, _mm256_and_si256(_w31, _mm256_cmpeq_epi16(x, _w31)));
gf31.c: ^
gf31.c: gf31.c:19:33: error: always_inline function '_mm256_and_si256' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: x = _mm256_xor_si256(x, _mm256_and_si256(_w31, _mm256_cmpeq_epi16(x, _w31)));
gf31.c: ^
gf31.c: gf31.c:19:56: error: always_inline function '_mm256_cmpeq_epi16' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: x = _mm256_xor_si256(x, _mm256_and_si256(_w31, _mm256_cmpeq_epi16(x, _w31)));
gf31.c: ^
gf31.c: gf31.c:20:9: error: always_inline function '_mm256_storeu_si256' requires target feature 'sse4.2', but would be inlined into function 'vgf31_unique' that is compiled without support for 'sse4.2'
gf31.c: _mm256_storeu_si256((__m256i*)(out + i*16), x);
gf31.c: ^
gf31.c: 6 errors generated.

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: fatal error: error in backend: Cannot select: 0x556eb2431e90: v4i64 = X86ISD::VTRUNC 0x556eb2431d60
try.c: 0x556eb2431d60: v16i32 = vselect 0x556eb2452140, 0x556eb23e4320, 0x556eb2431c30
try.c: 0x556eb2452140: v4i1 = X86ISD::PCMPGTM 0x556eb242e880, 0x556eb242a410
try.c: 0x556eb242e880: v4i64 = X86ISD::VBROADCAST 0x556eb23d5af0
try.c: 0x556eb23d5af0: i64,ch = load<LD8[%lsr.iv6971]> 0x556eb233f910, 0x556eb23cdf00, undef:i64
try.c: 0x556eb23cdf00: i64,ch = CopyFromReg 0x556eb233f910, Register:i64 %vreg50
try.c: 0x556eb242a670: i64 = Register %vreg50
try.c: 0x556eb23d6fc0: i64 = undef
try.c: 0x556eb242a410: v4i64,ch = CopyFromReg 0x556eb233f910, Register:v4i64 %vreg13
try.c: 0x556eb242f0d0: v4i64 = Register %vreg13
try.c: 0x556eb23e4320: v16i32 = X86ISD::VBROADCAST 0x556eb242eae0
try.c: 0x556eb242eae0: i32,ch = load<LD4[ConstantPool]> 0x556eb233f910, 0x556eb23d50d0, undef:i64
try.c: 0x556eb23d50d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556eb2419910: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556eb23d6fc0: i64 = undef
try.c: 0x556eb2431c30: 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: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: i32 = Constant<0>
try.c: 0x556eb2431b00: 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
try.c: fatal error: error in backend: Cannot select: 0x55d917bd3470: v4i64 = X86ISD::VTRUNC 0x55d917bd3340
try.c: 0x55d917bd3340: v16i32 = vselect 0x55d917bcfe50, 0x55d917b5dfa0, 0x55d917bd3210
try.c: 0x55d917bcfe50: v4i1 = X86ISD::PCMPGTM 0x55d917bc79e0, 0x55d917bc4580
try.c: 0x55d917bc79e0: v4i64 = X86ISD::VBROADCAST 0x55d917b5e460
try.c: 0x55d917b5e460: i64,ch = load<LD8[%lsr.iv6971]> 0x55d917ac19d0, 0x55d917b69080, undef:i64
try.c: 0x55d917b69080: i64,ch = CopyFromReg 0x55d917ac19d0, Register:i64 %vreg50
try.c: 0x55d917bc47e0: i64 = Register %vreg50
try.c: 0x55d917b63b20: i64 = undef
try.c: 0x55d917bc4580: v4i64,ch = CopyFromReg 0x55d917ac19d0, Register:v4i64 %vreg13
try.c: 0x55d917bc8230: v4i64 = Register %vreg13
try.c: 0x55d917b5dfa0: v16i32 = X86ISD::VBROADCAST 0x55d917bc7c40
try.c: 0x55d917bc7c40: i32,ch = load<LD4[ConstantPool]> 0x55d917ac19d0, 0x55d917b60c30, undef:i64
try.c: 0x55d917b60c30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d917b644a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d917b63b20: i64 = undef
try.c: 0x55d917bd3210: 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: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: i32 = Constant<0>
try.c: 0x55d917bd30e0: 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
try.c: fatal error: error in backend: Cannot select: 0x559c93088180: v4i64 = X86ISD::VTRUNC 0x559c93088050
try.c: 0x559c93088050: v16i32 = vselect 0x559c93070830, 0x559c9300e1c0, 0x559c93087f20
try.c: 0x559c93070830: v4i1 = X86ISD::PCMPGTM 0x559c9306d800, 0x559c93069390
try.c: 0x559c9306d800: v4i64 = X86ISD::VBROADCAST 0x559c93014be0
try.c: 0x559c93014be0: i64,ch = load<LD8[%lsr.iv6971]> 0x559c92f7e920, 0x559c93057100, undef:i64
try.c: 0x559c93057100: i64,ch = CopyFromReg 0x559c92f7e920, Register:i64 %vreg50
try.c: 0x559c930695f0: i64 = Register %vreg50
try.c: 0x559c930160b0: i64 = undef
try.c: 0x559c93069390: v4i64,ch = CopyFromReg 0x559c92f7e920, Register:v4i64 %vreg13
try.c: 0x559c9306e050: v4i64 = Register %vreg13
try.c: 0x559c9300e1c0: v16i32 = X86ISD::VBROADCAST 0x559c9306da60
try.c: 0x559c9306da60: i32,ch = load<LD4[ConstantPool]> 0x559c92f7e920, 0x559c930141c0, undef:i64
try.c: 0x559c930141c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559c93052780: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559c930160b0: i64 = undef
try.c: 0x559c93087f20: 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: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: i32 = Constant<0>
try.c: 0x559c93087df0: 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