Implementation notes: amd64, cel02, crypto_sign/sphincss128sha256simple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincss128sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
168227274649456 0 075183 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
170303517651609 0 077234 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
178560057660180 0 090599 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
191916828452296 0 079559 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
213082936250883 0 077751 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
248823171820644 0 046258 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
290373047421228 0 048151 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
299610492822676 0 050080 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
397626437025186 0 055607 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
413764188220888 0 048175 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
530868061019473 0 045263 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-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: 0x56364979d180: v4i64 = X86ISD::VTRUNC 0x56364979d050
try.c: 0x56364979d050: v16i32 = vselect 0x563649799b60, 0x5636497381f0, 0x56364979cf20
try.c: 0x563649799b60: v4i1 = X86ISD::PCMPGTM 0x563649794f10, 0x563649790aa0
try.c: 0x563649794f10: v4i64 = X86ISD::VBROADCAST 0x56364975a130
try.c: 0x56364975a130: i64,ch = load<LD8[%lsr.iv6971]> 0x5636496a5910, 0x56364977cd80, undef:i64
try.c: 0x56364977cd80: i64,ch = CopyFromReg 0x5636496a5910, Register:i64 %vreg50
try.c: 0x563649790d00: i64 = Register %vreg50
try.c: 0x56364975b600: i64 = undef
try.c: 0x563649790aa0: v4i64,ch = CopyFromReg 0x5636496a5910, Register:v4i64 %vreg13
try.c: 0x563649795760: v4i64 = Register %vreg13
try.c: 0x5636497381f0: v16i32 = X86ISD::VBROADCAST 0x563649795170
try.c: 0x563649795170: i32,ch = load<LD4[ConstantPool]> 0x5636496a5910, 0x56364973bbb0, undef:i64
try.c: 0x56364973bbb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563649779b30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56364975b600: i64 = undef
try.c: 0x56364979cf20: 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: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: i32 = Constant<0>
try.c: 0x56364979cdf0: 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: 0x5649a16a1640: v4i64 = X86ISD::VTRUNC 0x5649a16a1510
try.c: 0x5649a16a1510: v16i32 = vselect 0x5649a16b4330, 0x5649a162e380, 0x5649a16a13e0
try.c: 0x5649a16b4330: v4i1 = X86ISD::PCMPGTM 0x5649a1699800, 0x5649a1695390
try.c: 0x5649a1699800: v4i64 = X86ISD::VBROADCAST 0x5649a162e840
try.c: 0x5649a162e840: i64,ch = load<LD8[%lsr.iv6971]> 0x5649a1592a40, 0x5649a163b1e0, undef:i64
try.c: 0x5649a163b1e0: i64,ch = CopyFromReg 0x5649a1592a40, Register:i64 %vreg50
try.c: 0x5649a16955f0: i64 = Register %vreg50
try.c: 0x5649a1631160: i64 = undef
try.c: 0x5649a1695390: v4i64,ch = CopyFromReg 0x5649a1592a40, Register:v4i64 %vreg13
try.c: 0x5649a169a050: v4i64 = Register %vreg13
try.c: 0x5649a162e380: v16i32 = X86ISD::VBROADCAST 0x5649a1699a60
try.c: 0x5649a1699a60: i32,ch = load<LD4[ConstantPool]> 0x5649a1592a40, 0x5649a16397b0, undef:i64
try.c: 0x5649a16397b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5649a1631ae0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5649a1631160: i64 = undef
try.c: 0x5649a16a13e0: 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: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: i32 = Constant<0>
try.c: 0x5649a16a12b0: 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: 0x55ff84c63c40: v4i64 = X86ISD::VTRUNC 0x55ff84c63b10
try.c: 0x55ff84c63b10: v16i32 = vselect 0x55ff84c60620, 0x55ff84c03920, 0x55ff84c639e0
try.c: 0x55ff84c60620: v4i1 = X86ISD::PCMPGTM 0x55ff84c5b9d0, 0x55ff84c57560
try.c: 0x55ff84c5b9d0: v4i64 = X86ISD::VBROADCAST 0x55ff84bffb10
try.c: 0x55ff84bffb10: i64,ch = load<LD8[%lsr.iv6971]> 0x55ff84b6c950, 0x55ff84c45d50, undef:i64
try.c: 0x55ff84c45d50: i64,ch = CopyFromReg 0x55ff84b6c950, Register:i64 %vreg50
try.c: 0x55ff84c577c0: i64 = Register %vreg50
try.c: 0x55ff84c01f90: i64 = undef
try.c: 0x55ff84c57560: v4i64,ch = CopyFromReg 0x55ff84b6c950, Register:v4i64 %vreg13
try.c: 0x55ff84c5c220: v4i64 = Register %vreg13
try.c: 0x55ff84c03920: v16i32 = X86ISD::VBROADCAST 0x55ff84c5bc30
try.c: 0x55ff84c5bc30: i32,ch = load<LD4[ConstantPool]> 0x55ff84b6c950, 0x55ff84bff0f0, undef:i64
try.c: 0x55ff84bff0f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55ff84be4e40: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55ff84c01f90: i64 = undef
try.c: 0x55ff84c639e0: 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: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: i32 = Constant<0>
try.c: 0x55ff84c638b0: 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: 0x55a111132440: v4i64 = X86ISD::VTRUNC 0x55a111132310
try.c: 0x55a111132310: v16i32 = vselect 0x55a11112ce10, 0x55a1110d4b10, 0x55a1111321e0
try.c: 0x55a11112ce10: v4i1 = X86ISD::PCMPGTM 0x55a11112be00, 0x55a111127990
try.c: 0x55a11112be00: v4i64 = X86ISD::VBROADCAST 0x55a1110d1cb0
try.c: 0x55a1110d1cb0: i64,ch = load<LD8[%lsr.iv6971]> 0x55a11103c950, 0x55a11111e4a0, undef:i64
try.c: 0x55a11111e4a0: i64,ch = CopyFromReg 0x55a11103c950, Register:i64 %vreg50
try.c: 0x55a111127bf0: i64 = Register %vreg50
try.c: 0x55a1110d3180: i64 = undef
try.c: 0x55a111127990: v4i64,ch = CopyFromReg 0x55a11103c950, Register:v4i64 %vreg13
try.c: 0x55a11112c650: v4i64 = Register %vreg13
try.c: 0x55a1110d4b10: v16i32 = X86ISD::VBROADCAST 0x55a11112c060
try.c: 0x55a11112c060: i32,ch = load<LD4[ConstantPool]> 0x55a11103c950, 0x55a1110d0080, undef:i64
try.c: 0x55a1110d0080: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55a11110f360: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55a1110d3180: i64 = undef
try.c: 0x55a1111321e0: 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: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: i32 = Constant<0>
try.c: 0x55a1111320b0: 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: 0x559eeb913d70: v4i64 = X86ISD::VTRUNC 0x559eeb913c40
try.c: 0x559eeb913c40: v16i32 = vselect 0x559eeb8f2750, 0x559eeb88c1d0, 0x559eeb913b10
try.c: 0x559eeb8f2750: v4i1 = X86ISD::PCMPGTM 0x559eeb8ef730, 0x559eeb8ec2d0
try.c: 0x559eeb8ef730: v4i64 = X86ISD::VBROADCAST 0x559eeb88c690
try.c: 0x559eeb88c690: i64,ch = load<LD8[%lsr.iv6971]> 0x559eeb7e9a20, 0x559eeb89ace0, undef:i64
try.c: 0x559eeb89ace0: i64,ch = CopyFromReg 0x559eeb7e9a20, Register:i64 %vreg50
try.c: 0x559eeb8ec530: i64 = Register %vreg50
try.c: 0x559eeb89e3b0: i64 = undef
try.c: 0x559eeb8ec2d0: v4i64,ch = CopyFromReg 0x559eeb7e9a20, Register:v4i64 %vreg13
try.c: 0x559eeb8eff80: v4i64 = Register %vreg13
try.c: 0x559eeb88c1d0: v16i32 = X86ISD::VBROADCAST 0x559eeb8ef990
try.c: 0x559eeb8ef990: i32,ch = load<LD4[ConstantPool]> 0x559eeb7e9a20, 0x559eeb8992b0, undef:i64
try.c: 0x559eeb8992b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x559eeb89ed30: i64 = TargetConstantPool<i32 1> 0
try.c: 0x559eeb89e3b0: i64 = undef
try.c: 0x559eeb913b10: 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: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: i32 = Constant<0>
try.c: 0x559eeb9139e0: 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: 0x55daab5133d0: v4i64 = X86ISD::VTRUNC 0x55daab5132a0
try.c: 0x55daab5132a0: v16i32 = vselect 0x55daab4f67c0, 0x55daab49b3e0, 0x55daab513170
try.c: 0x55daab4f67c0: v4i1 = X86ISD::PCMPGTM 0x55daab4f3790, 0x55daab4ef320
try.c: 0x55daab4f3790: v4i64 = X86ISD::VBROADCAST 0x55daab497b90
try.c: 0x55daab497b90: i64,ch = load<LD8[%lsr.iv6971]> 0x55daab404950, 0x55daab4ea180, undef:i64
try.c: 0x55daab4ea180: i64,ch = CopyFromReg 0x55daab404950, Register:i64 %vreg50
try.c: 0x55daab4ef580: i64 = Register %vreg50
try.c: 0x55daab499a50: i64 = undef
try.c: 0x55daab4ef320: v4i64,ch = CopyFromReg 0x55daab404950, Register:v4i64 %vreg13
try.c: 0x55daab4f3fe0: v4i64 = Register %vreg13
try.c: 0x55daab49b3e0: v16i32 = X86ISD::VBROADCAST 0x55daab4f39f0
try.c: 0x55daab4f39f0: i32,ch = load<LD4[ConstantPool]> 0x55daab404950, 0x55daab497170, undef:i64
try.c: 0x55daab497170: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55daab4ba330: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55daab499a50: i64 = undef
try.c: 0x55daab513170: 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: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: i32 = Constant<0>
try.c: 0x55daab513040: 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