Implementation notes: amd64, cel02, crypto_sign/sphincss256sha256simple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincss256sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
122880075853242 0 080623 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
128906998051825 0 078839 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
205164745261725 0 092319 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
220247964051660 0 077330 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
291411403449638 0 075359 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
476698962221690 0 048743 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
660077310625922 0 056455 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
697694597221306 0 048719 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
770776875420648 0 046306 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
903621320819459 0 045239 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
913611020424198 0 051688 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: 0x5650651e1190: v4i64 = X86ISD::VTRUNC 0x5650651e1060
try.c: 0x5650651e1060: v16i32 = vselect 0x5650651ddb70, 0x565065178c80, 0x5650651e0f30
try.c: 0x5650651ddb70: v4i1 = X86ISD::PCMPGTM 0x5650651d8f20, 0x5650651d4ab0
try.c: 0x5650651d8f20: v4i64 = X86ISD::VBROADCAST 0x56506518e320
try.c: 0x56506518e320: i64,ch = load<LD8[%lsr.iv6971]> 0x5650650e9960, 0x5650651cbd80, undef:i64
try.c: 0x5650651cbd80: i64,ch = CopyFromReg 0x5650650e9960, Register:i64 %vreg50
try.c: 0x5650651d4d10: i64 = Register %vreg50
try.c: 0x5650651772f0: i64 = undef
try.c: 0x5650651d4ab0: v4i64,ch = CopyFromReg 0x5650650e9960, Register:v4i64 %vreg13
try.c: 0x5650651d9770: v4i64 = Register %vreg13
try.c: 0x565065178c80: v16i32 = X86ISD::VBROADCAST 0x5650651d9180
try.c: 0x5650651d9180: i32,ch = load<LD4[ConstantPool]> 0x5650650e9960, 0x56506518d900, undef:i64
try.c: 0x56506518d900: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5650651bfba0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5650651772f0: i64 = undef
try.c: 0x5650651e0f30: 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: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: i32 = Constant<0>
try.c: 0x5650651e0e00: 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: 0x55ed426e5150: v4i64 = X86ISD::VTRUNC 0x55ed426e5020
try.c: 0x55ed426e5020: v16i32 = vselect 0x55ed426c2b20, 0x55ed42654f30, 0x55ed426e4ef0
try.c: 0x55ed426c2b20: v4i1 = X86ISD::PCMPGTM 0x55ed426c1220, 0x55ed426bc5f0
try.c: 0x55ed426c1220: v4i64 = X86ISD::VBROADCAST 0x55ed426553f0
try.c: 0x55ed426553f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55ed425baa40, 0x55ed4265cf30, undef:i64
try.c: 0x55ed4265cf30: i64,ch = CopyFromReg 0x55ed425baa40, Register:i64 %vreg50
try.c: 0x55ed426bc850: i64 = Register %vreg50
try.c: 0x55ed42659df0: i64 = undef
try.c: 0x55ed426bc5f0: v4i64,ch = CopyFromReg 0x55ed425baa40, Register:v4i64 %vreg13
try.c: 0x55ed426c1a70: v4i64 = Register %vreg13
try.c: 0x55ed42654f30: v16i32 = X86ISD::VBROADCAST 0x55ed426c1480
try.c: 0x55ed426c1480: i32,ch = load<LD4[ConstantPool]> 0x55ed425baa40, 0x55ed426578d0, undef:i64
try.c: 0x55ed426578d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ed4265a770: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ed42659df0: i64 = undef
try.c: 0x55ed426e4ef0: 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: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: i32 = Constant<0>
try.c: 0x55ed426e4dc0: 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: 0x55b5814b2390: v4i64 = X86ISD::VTRUNC 0x55b5814b2260
try.c: 0x55b5814b2260: v16i32 = vselect 0x55b58149dd60, 0x55b581437b10, 0x55b5814b2130
try.c: 0x55b58149dd60: v4i1 = X86ISD::PCMPGTM 0x55b581497a10, 0x55b5814935a0
try.c: 0x55b581497a10: v4i64 = X86ISD::VBROADCAST 0x55b58143af20
try.c: 0x55b58143af20: i64,ch = load<LD8[%lsr.iv6971]> 0x55b5813a8950, 0x55b581482b00, undef:i64
try.c: 0x55b581482b00: i64,ch = CopyFromReg 0x55b5813a8950, Register:i64 %vreg50
try.c: 0x55b581493800: i64 = Register %vreg50
try.c: 0x55b581436180: i64 = undef
try.c: 0x55b5814935a0: v4i64,ch = CopyFromReg 0x55b5813a8950, Register:v4i64 %vreg13
try.c: 0x55b581498260: v4i64 = Register %vreg13
try.c: 0x55b581437b10: v16i32 = X86ISD::VBROADCAST 0x55b581497c70
try.c: 0x55b581497c70: i32,ch = load<LD4[ConstantPool]> 0x55b5813a8950, 0x55b58143a500, undef:i64
try.c: 0x55b58143a500: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b58147d150: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b581436180: i64 = undef
try.c: 0x55b5814b2130: 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: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: i32 = Constant<0>
try.c: 0x55b5814b2000: 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: 0x55c7b824dfb0: v4i64 = X86ISD::VTRUNC 0x55c7b824de80
try.c: 0x55c7b824de80: v16i32 = vselect 0x55c7b8248980, 0x55c7b820fab0, 0x55c7b824dd50
try.c: 0x55c7b8248980: v4i1 = X86ISD::PCMPGTM 0x55c7b8247970, 0x55c7b8243500
try.c: 0x55c7b8247970: v4i64 = X86ISD::VBROADCAST 0x55c7b820cc50
try.c: 0x55c7b820cc50: i64,ch = load<LD8[%lsr.iv6971]> 0x55c7b8158930, 0x55c7b8232f20, undef:i64
try.c: 0x55c7b8232f20: i64,ch = CopyFromReg 0x55c7b8158930, Register:i64 %vreg50
try.c: 0x55c7b8243760: i64 = Register %vreg50
try.c: 0x55c7b820e120: i64 = undef
try.c: 0x55c7b8243500: v4i64,ch = CopyFromReg 0x55c7b8158930, Register:v4i64 %vreg13
try.c: 0x55c7b82481c0: v4i64 = Register %vreg13
try.c: 0x55c7b820fab0: v16i32 = X86ISD::VBROADCAST 0x55c7b8247bd0
try.c: 0x55c7b8247bd0: i32,ch = load<LD4[ConstantPool]> 0x55c7b8158930, 0x55c7b81ebc70, undef:i64
try.c: 0x55c7b81ebc70: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c7b81b8b60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c7b820e120: i64 = undef
try.c: 0x55c7b824dd50: 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: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: i32 = Constant<0>
try.c: 0x55c7b824dc20: 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: 0x563ebefb1e10: v4i64 = X86ISD::VTRUNC 0x563ebefb1ce0
try.c: 0x563ebefb1ce0: v16i32 = vselect 0x563ebefb8790, 0x563ebef340b0, 0x563ebefb1bb0
try.c: 0x563ebefb8790: v4i1 = X86ISD::PCMPGTM 0x563ebef9a070, 0x563ebef96c10
try.c: 0x563ebef9a070: v4i64 = X86ISD::VBROADCAST 0x563ebef34570
try.c: 0x563ebef34570: i64,ch = load<LD8[%lsr.iv6971]> 0x563ebee94a30, 0x563ebef38a10, undef:i64
try.c: 0x563ebef38a10: i64,ch = CopyFromReg 0x563ebee94a30, Register:i64 %vreg50
try.c: 0x563ebef96e70: i64 = Register %vreg50
try.c: 0x563ebef13e40: i64 = undef
try.c: 0x563ebef96c10: v4i64,ch = CopyFromReg 0x563ebee94a30, Register:v4i64 %vreg13
try.c: 0x563ebef9a8c0: v4i64 = Register %vreg13
try.c: 0x563ebef340b0: v16i32 = X86ISD::VBROADCAST 0x563ebef9a2d0
try.c: 0x563ebef9a2d0: i32,ch = load<LD4[ConstantPool]> 0x563ebee94a30, 0x563ebef36fe0, undef:i64
try.c: 0x563ebef36fe0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563ebef147c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563ebef13e40: i64 = undef
try.c: 0x563ebefb1bb0: 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: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: i32 = Constant<0>
try.c: 0x563ebefb1a80: 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: 0x560673721ac0: v4i64 = X86ISD::VTRUNC 0x560673721990
try.c: 0x560673721990: v16i32 = vselect 0x56067371c490, 0x5606736bc740, 0x560673721860
try.c: 0x56067371c490: v4i1 = X86ISD::PCMPGTM 0x560673717840, 0x5606737133d0
try.c: 0x560673717840: v4i64 = X86ISD::VBROADCAST 0x5606736c0220
try.c: 0x5606736c0220: i64,ch = load<LD8[%lsr.iv6971]> 0x560673628940, 0x560673701470, undef:i64
try.c: 0x560673701470: i64,ch = CopyFromReg 0x560673628940, Register:i64 %vreg50
try.c: 0x560673713630: i64 = Register %vreg50
try.c: 0x5606736badb0: i64 = undef
try.c: 0x5606737133d0: v4i64,ch = CopyFromReg 0x560673628940, Register:v4i64 %vreg13
try.c: 0x560673718090: v4i64 = Register %vreg13
try.c: 0x5606736bc740: v16i32 = X86ISD::VBROADCAST 0x560673717aa0
try.c: 0x560673717aa0: i32,ch = load<LD4[ConstantPool]> 0x560673628940, 0x5606736bf800, undef:i64
try.c: 0x5606736bf800: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560673702a40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5606736badb0: i64 = undef
try.c: 0x560673721860: 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: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: i32 = Constant<0>
try.c: 0x560673721730: 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