Implementation notes: amd64, cel02, crypto_sign/sphincsf256sha256robust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf256sha256robust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
89306206052109 0 077778 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
93604301253789 0 081191 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
98802275852426 0 079439 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
100501271461900 0 092519 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
106472870450185 0 075919 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
110473847625696 0 056239 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
242346133421404 0 048823 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
243785282420701 0 046370 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
262945033821815 0 048863 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
286927555019520 0 045303 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
288276791623702 0 051208 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

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: 0x55d33a7041b0: v4i64 = X86ISD::VTRUNC 0x55d33a704080
try.c: 0x55d33a704080: v16i32 = vselect 0x55d33a717710, 0x55d33a6b57e0, 0x55d33a703f50
try.c: 0x55d33a717710: v4i1 = X86ISD::PCMPGTM 0x55d33a6fdb80, 0x55d33a6f9710
try.c: 0x55d33a6fdb80: v4i64 = X86ISD::VBROADCAST 0x55d33a6cb310
try.c: 0x55d33a6cb310: i64,ch = load<LD8[%lsr.iv6971]> 0x55d33a60e950, 0x55d33a6f4570, undef:i64
try.c: 0x55d33a6f4570: i64,ch = CopyFromReg 0x55d33a60e950, Register:i64 %vreg50
try.c: 0x55d33a6f9970: i64 = Register %vreg50
try.c: 0x55d33a6b3e50: i64 = undef
try.c: 0x55d33a6f9710: v4i64,ch = CopyFromReg 0x55d33a60e950, Register:v4i64 %vreg13
try.c: 0x55d33a6fe3d0: v4i64 = Register %vreg13
try.c: 0x55d33a6b57e0: v16i32 = X86ISD::VBROADCAST 0x55d33a6fdde0
try.c: 0x55d33a6fdde0: i32,ch = load<LD4[ConstantPool]> 0x55d33a60e950, 0x55d33a6ca8f0, undef:i64
try.c: 0x55d33a6ca8f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d33a6f17c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d33a6b3e50: i64 = undef
try.c: 0x55d33a703f50: 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: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: i32 = Constant<0>
try.c: 0x55d33a703e20: 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: 0x5624ce6b3e70: v4i64 = X86ISD::VTRUNC 0x5624ce6b3d40
try.c: 0x5624ce6b3d40: v16i32 = vselect 0x5624ce6c37a0, 0x5624ce646160, 0x5624ce6b3c10
try.c: 0x5624ce6c37a0: v4i1 = X86ISD::PCMPGTM 0x5624ce6ab020, 0x5624ce6a6bb0
try.c: 0x5624ce6ab020: v4i64 = X86ISD::VBROADCAST 0x5624ce646620
try.c: 0x5624ce646620: i64,ch = load<LD8[%lsr.iv6971]> 0x5624ce5a4a40, 0x5624ce63f6b0, undef:i64
try.c: 0x5624ce63f6b0: i64,ch = CopyFromReg 0x5624ce5a4a40, Register:i64 %vreg50
try.c: 0x5624ce6a6e10: i64 = Register %vreg50
try.c: 0x5624ce655170: i64 = undef
try.c: 0x5624ce6a6bb0: v4i64,ch = CopyFromReg 0x5624ce5a4a40, Register:v4i64 %vreg13
try.c: 0x5624ce6ab870: v4i64 = Register %vreg13
try.c: 0x5624ce646160: v16i32 = X86ISD::VBROADCAST 0x5624ce6ab280
try.c: 0x5624ce6ab280: i32,ch = load<LD4[ConstantPool]> 0x5624ce5a4a40, 0x5624ce63dc80, undef:i64
try.c: 0x5624ce63dc80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5624ce655af0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5624ce655170: i64 = undef
try.c: 0x5624ce6b3c10: 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: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: i32 = Constant<0>
try.c: 0x5624ce6b3ae0: 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: 0x5590184e5a20: v4i64 = X86ISD::VTRUNC 0x5590184e58f0
try.c: 0x5590184e58f0: v16i32 = vselect 0x5590184e2400, 0x5590184a4fc0, 0x5590184e57c0
try.c: 0x5590184e2400: v4i1 = X86ISD::PCMPGTM 0x5590184dd7b0, 0x5590184d9340
try.c: 0x5590184dd7b0: v4i64 = X86ISD::VBROADCAST 0x559018484790
try.c: 0x559018484790: i64,ch = load<LD8[%lsr.iv6971]> 0x5590183ee9d0, 0x5590184c8660, undef:i64
try.c: 0x5590184c8660: i64,ch = CopyFromReg 0x5590183ee9d0, Register:i64 %vreg50
try.c: 0x5590184d95a0: i64 = Register %vreg50
try.c: 0x5590184a3630: i64 = undef
try.c: 0x5590184d9340: v4i64,ch = CopyFromReg 0x5590183ee9d0, Register:v4i64 %vreg13
try.c: 0x5590184de000: v4i64 = Register %vreg13
try.c: 0x5590184a4fc0: v16i32 = X86ISD::VBROADCAST 0x5590184dda10
try.c: 0x5590184dda10: i32,ch = load<LD4[ConstantPool]> 0x5590183ee9d0, 0x559018483d70, undef:i64
try.c: 0x559018483d70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5590184c3540: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5590184a3630: i64 = undef
try.c: 0x5590184e57c0: 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: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: i32 = Constant<0>
try.c: 0x5590184e5690: 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
sha256avx.c: sha256avx.c:11:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[0] = _mm256_unpacklo_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:12:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[1] = _mm256_unpackhi_epi32(s[0], s[1]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:13:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[2] = _mm256_unpacklo_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:14:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[3] = _mm256_unpackhi_epi32(s[2], s[3]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:15:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[4] = _mm256_unpacklo_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:16:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[5] = _mm256_unpackhi_epi32(s[4], s[5]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:17:15: error: always_inline function '_mm256_unpacklo_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[6] = _mm256_unpacklo_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:18:15: error: always_inline function '_mm256_unpackhi_epi32' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: tmp0[7] = _mm256_unpackhi_epi32(s[6], s[7]);
sha256avx.c: ^
sha256avx.c: sha256avx.c:19:15: error: always_inline function '_mm256_unpacklo_epi64' requires target feature 'sse4.2', but would be inlined into function 'transpose' that is compiled without support for 'sse4.2'
sha256avx.c: ...

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: 0x556643ca0460: v4i64 = X86ISD::VTRUNC 0x556643ca0330
try.c: 0x556643ca0330: v16i32 = vselect 0x556643c80f30, 0x556643c51ea0, 0x556643ca0200
try.c: 0x556643c80f30: v4i1 = X86ISD::PCMPGTM 0x556643c88b00, 0x556643c84690
try.c: 0x556643c88b00: v4i64 = X86ISD::VBROADCAST 0x556643c2cba0
try.c: 0x556643c2cba0: i64,ch = load<LD8[%lsr.iv6971]> 0x556643b99950, 0x556643c7bb20, undef:i64
try.c: 0x556643c7bb20: i64,ch = CopyFromReg 0x556643b99950, Register:i64 %vreg50
try.c: 0x556643c848f0: i64 = Register %vreg50
try.c: 0x556643c50510: i64 = undef
try.c: 0x556643c84690: v4i64,ch = CopyFromReg 0x556643b99950, Register:v4i64 %vreg13
try.c: 0x556643c89350: v4i64 = Register %vreg13
try.c: 0x556643c51ea0: v16i32 = X86ISD::VBROADCAST 0x556643c88d60
try.c: 0x556643c88d60: i32,ch = load<LD4[ConstantPool]> 0x556643b99950, 0x556643c2c180, undef:i64
try.c: 0x556643c2c180: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556643bf5d60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556643c50510: i64 = undef
try.c: 0x556643ca0200: 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: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: i32 = Constant<0>
try.c: 0x556643ca00d0: 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: 0x55ce46ef0f30: v4i64 = X86ISD::VTRUNC 0x55ce46ef0e00
try.c: 0x55ce46ef0e00: v16i32 = vselect 0x55ce46ee6130, 0x55ce46e60490, 0x55ce46ef0cd0
try.c: 0x55ce46ee6130: v4i1 = X86ISD::PCMPGTM 0x55ce46ecd360, 0x55ce46ec8730
try.c: 0x55ce46ecd360: v4i64 = X86ISD::VBROADCAST 0x55ce46e60950
try.c: 0x55ce46e60950: i64,ch = load<LD8[%lsr.iv6971]> 0x55ce46dc6a30, 0x55ce46e8bf60, undef:i64
try.c: 0x55ce46e8bf60: i64,ch = CopyFromReg 0x55ce46dc6a30, Register:i64 %vreg50
try.c: 0x55ce46ec8990: i64 = Register %vreg50
try.c: 0x55ce46e65d60: i64 = undef
try.c: 0x55ce46ec8730: v4i64,ch = CopyFromReg 0x55ce46dc6a30, Register:v4i64 %vreg13
try.c: 0x55ce46ecdbb0: v4i64 = Register %vreg13
try.c: 0x55ce46e60490: v16i32 = X86ISD::VBROADCAST 0x55ce46ecd5c0
try.c: 0x55ce46ecd5c0: i32,ch = load<LD4[ConstantPool]> 0x55ce46dc6a30, 0x55ce46e62e30, undef:i64
try.c: 0x55ce46e62e30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ce46e666e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ce46e65d60: i64 = undef
try.c: 0x55ce46ef0cd0: 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: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: i32 = Constant<0>
try.c: 0x55ce46ef0ba0: 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: 0x5603497911a0: v4i64 = X86ISD::VTRUNC 0x560349791070
try.c: 0x560349791070: v16i32 = vselect 0x560349779840, 0x56034972cbb0, 0x560349790f40
try.c: 0x560349779840: v4i1 = X86ISD::PCMPGTM 0x560349776820, 0x5603497723b0
try.c: 0x560349776820: v4i64 = X86ISD::VBROADCAST 0x56034971da70
try.c: 0x56034971da70: i64,ch = load<LD8[%lsr.iv6971]> 0x560349687940, 0x56034975dd20, undef:i64
try.c: 0x56034975dd20: i64,ch = CopyFromReg 0x560349687940, Register:i64 %vreg50
try.c: 0x560349772610: i64 = Register %vreg50
try.c: 0x56034971ef40: i64 = undef
try.c: 0x5603497723b0: v4i64,ch = CopyFromReg 0x560349687940, Register:v4i64 %vreg13
try.c: 0x560349777070: v4i64 = Register %vreg13
try.c: 0x56034972cbb0: v16i32 = X86ISD::VBROADCAST 0x560349776a80
try.c: 0x560349776a80: i32,ch = load<LD4[ConstantPool]> 0x560349687940, 0x56034971d050, undef:i64
try.c: 0x56034971d050: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560349757060: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56034971ef40: i64 = undef
try.c: 0x560349790f40: 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: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: i32 = Constant<0>
try.c: 0x560349790e10: 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