Implementation notes: amd64, cel02, crypto_sign/sphincsf192sha256robust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf192sha256robust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
17649709252702 0 078370 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
28297678661096 0 091607 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
28353097453543 0 080879 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
31797072252132 0 079079 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
35420891650215 0 075935 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
44718246820986 0 046642 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
53138159424146 0 051576 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
71299426425104 0 055615 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
73753539421294 0 048655 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
89019411621670 0 048663 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
96329430219581 0 045367 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: 0x56073d165250: v4i64 = X86ISD::VTRUNC 0x56073d165120
try.c: 0x56073d165120: v16i32 = vselect 0x56073d142d00, 0x56073d0ef610, 0x56073d164ff0
try.c: 0x56073d142d00: v4i1 = X86ISD::PCMPGTM 0x56073d14a8d0, 0x56073d146460
try.c: 0x56073d14a8d0: v4i64 = X86ISD::VBROADCAST 0x56073d0f69e0
try.c: 0x56073d0f69e0: i64,ch = load<LD8[%lsr.iv6971]> 0x56073d05b960, 0x56073d135ee0, undef:i64
try.c: 0x56073d135ee0: i64,ch = CopyFromReg 0x56073d05b960, Register:i64 %vreg50
try.c: 0x56073d1466c0: i64 = Register %vreg50
try.c: 0x56073d0edc80: i64 = undef
try.c: 0x56073d146460: v4i64,ch = CopyFromReg 0x56073d05b960, Register:v4i64 %vreg13
try.c: 0x56073d14b120: v4i64 = Register %vreg13
try.c: 0x56073d0ef610: v16i32 = X86ISD::VBROADCAST 0x56073d14ab30
try.c: 0x56073d14ab30: i32,ch = load<LD4[ConstantPool]> 0x56073d05b960, 0x56073d0f5fc0, undef:i64
try.c: 0x56073d0f5fc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56073d1345c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56073d0edc80: i64 = undef
try.c: 0x56073d164ff0: 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: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: i32 = Constant<0>
try.c: 0x56073d164ec0: 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: 0x55f675ca2340: v4i64 = X86ISD::VTRUNC 0x55f675ca2210
try.c: 0x55f675ca2210: v16i32 = vselect 0x55f675c92b10, 0x55f675c19480, 0x55f675ca20e0
try.c: 0x55f675c92b10: v4i1 = X86ISD::PCMPGTM 0x55f675c7e340, 0x55f675c79710
try.c: 0x55f675c7e340: v4i64 = X86ISD::VBROADCAST 0x55f675c19940
try.c: 0x55f675c19940: i64,ch = load<LD8[%lsr.iv6971]> 0x55f675b77a40, 0x55f675c29d10, undef:i64
try.c: 0x55f675c29d10: i64,ch = CopyFromReg 0x55f675b77a40, Register:i64 %vreg50
try.c: 0x55f675c79970: i64 = Register %vreg50
try.c: 0x55f675c37ac0: i64 = undef
try.c: 0x55f675c79710: v4i64,ch = CopyFromReg 0x55f675b77a40, Register:v4i64 %vreg13
try.c: 0x55f675c7eb90: v4i64 = Register %vreg13
try.c: 0x55f675c19480: v16i32 = X86ISD::VBROADCAST 0x55f675c7e5a0
try.c: 0x55f675c7e5a0: i32,ch = load<LD4[ConstantPool]> 0x55f675b77a40, 0x55f675c11ad0, undef:i64
try.c: 0x55f675c11ad0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f675c38440: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f675c37ac0: i64 = undef
try.c: 0x55f675ca20e0: 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: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: i32 = Constant<0>
try.c: 0x55f675ca1fb0: 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: 0x562cc2a07a00: v4i64 = X86ISD::VTRUNC 0x562cc2a078d0
try.c: 0x562cc2a078d0: v16i32 = vselect 0x562cc2a023d0, 0x562cc29a56a0, 0x562cc2a077a0
try.c: 0x562cc2a023d0: v4i1 = X86ISD::PCMPGTM 0x562cc29fd9b0, 0x562cc29f9540
try.c: 0x562cc29fd9b0: v4i64 = X86ISD::VBROADCAST 0x562cc299ea40
try.c: 0x562cc299ea40: i64,ch = load<LD8[%lsr.iv6971]> 0x562cc290e950, 0x562cc29f0a60, undef:i64
try.c: 0x562cc29f0a60: i64,ch = CopyFromReg 0x562cc290e950, Register:i64 %vreg50
try.c: 0x562cc29f97a0: i64 = Register %vreg50
try.c: 0x562cc299ff10: i64 = undef
try.c: 0x562cc29f9540: v4i64,ch = CopyFromReg 0x562cc290e950, Register:v4i64 %vreg13
try.c: 0x562cc29fe200: v4i64 = Register %vreg13
try.c: 0x562cc29a56a0: v16i32 = X86ISD::VBROADCAST 0x562cc29fdc10
try.c: 0x562cc29fdc10: i32,ch = load<LD4[ConstantPool]> 0x562cc290e950, 0x562cc299e020, undef:i64
try.c: 0x562cc299e020: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562cc29e2f60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562cc299ff10: i64 = undef
try.c: 0x562cc2a077a0: 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: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: i32 = Constant<0>
try.c: 0x562cc2a07670: 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: 0x555cc4e0f390: v4i64 = X86ISD::VTRUNC 0x555cc4e0f260
try.c: 0x555cc4e0f260: v16i32 = vselect 0x555cc4dfeae0, 0x555cc4db6e40, 0x555cc4e0f130
try.c: 0x555cc4dfeae0: v4i1 = X86ISD::PCMPGTM 0x555cc4e076c0, 0x555cc4e03250
try.c: 0x555cc4e076c0: v4i64 = X86ISD::VBROADCAST 0x555cc4dabb30
try.c: 0x555cc4dabb30: i64,ch = load<LD8[%lsr.iv6971]> 0x555cc4d18900, 0x555cc4df28d0, undef:i64
try.c: 0x555cc4df28d0: i64,ch = CopyFromReg 0x555cc4d18900, Register:i64 %vreg50
try.c: 0x555cc4e034b0: i64 = Register %vreg50
try.c: 0x555cc4db54b0: i64 = undef
try.c: 0x555cc4e03250: v4i64,ch = CopyFromReg 0x555cc4d18900, Register:v4i64 %vreg13
try.c: 0x555cc4e07f10: v4i64 = Register %vreg13
try.c: 0x555cc4db6e40: v16i32 = X86ISD::VBROADCAST 0x555cc4e07920
try.c: 0x555cc4e07920: i32,ch = load<LD4[ConstantPool]> 0x555cc4d18900, 0x555cc4dab110, undef:i64
try.c: 0x555cc4dab110: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555cc4df1050: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555cc4db54b0: i64 = undef
try.c: 0x555cc4e0f130: 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: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: i32 = Constant<0>
try.c: 0x555cc4e0f000: 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: 0x55606fd1c290: v4i64 = X86ISD::VTRUNC 0x55606fd1c160
try.c: 0x55606fd1c160: v16i32 = vselect 0x55606fd105d0, 0x55606fca0220, 0x55606fd1c030
try.c: 0x55606fd105d0: v4i1 = X86ISD::PCMPGTM 0x55606fd04120, 0x55606fd00cc0
try.c: 0x55606fd04120: v4i64 = X86ISD::VBROADCAST 0x55606fca06e0
try.c: 0x55606fca06e0: i64,ch = load<LD8[%lsr.iv6971]> 0x55606fbfea30, 0x55606fc99730, undef:i64
try.c: 0x55606fc99730: i64,ch = CopyFromReg 0x55606fbfea30, Register:i64 %vreg50
try.c: 0x55606fd00f20: i64 = Register %vreg50
try.c: 0x55606fcb0b70: i64 = undef
try.c: 0x55606fd00cc0: v4i64,ch = CopyFromReg 0x55606fbfea30, Register:v4i64 %vreg13
try.c: 0x55606fd04970: v4i64 = Register %vreg13
try.c: 0x55606fca0220: v16i32 = X86ISD::VBROADCAST 0x55606fd04380
try.c: 0x55606fd04380: i32,ch = load<LD4[ConstantPool]> 0x55606fbfea30, 0x55606fc97d00, undef:i64
try.c: 0x55606fc97d00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55606fcb14f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55606fcb0b70: i64 = undef
try.c: 0x55606fd1c030: 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: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: i32 = Constant<0>
try.c: 0x55606fd1bf00: 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: 0x55899f3c2b10: v4i64 = X86ISD::VTRUNC 0x55899f3c29e0
try.c: 0x55899f3c29e0: v16i32 = vselect 0x55899f3ca9b0, 0x55899f362c50, 0x55899f3c28b0
try.c: 0x55899f3ca9b0: v4i1 = X86ISD::PCMPGTM 0x55899f3baa50, 0x55899f3b65e0
try.c: 0x55899f3baa50: v4i64 = X86ISD::VBROADCAST 0x55899f3882f0
try.c: 0x55899f3882f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55899f2cb950, 0x55899f3a61d0, undef:i64
try.c: 0x55899f3a61d0: i64,ch = CopyFromReg 0x55899f2cb950, Register:i64 %vreg50
try.c: 0x55899f3b6840: i64 = Register %vreg50
try.c: 0x55899f3612c0: i64 = undef
try.c: 0x55899f3b65e0: v4i64,ch = CopyFromReg 0x55899f2cb950, Register:v4i64 %vreg13
try.c: 0x55899f3bb2a0: v4i64 = Register %vreg13
try.c: 0x55899f362c50: v16i32 = X86ISD::VBROADCAST 0x55899f3bacb0
try.c: 0x55899f3bacb0: i32,ch = load<LD4[ConstantPool]> 0x55899f2cb950, 0x55899f3878d0, undef:i64
try.c: 0x55899f3878d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55899f3a0410: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55899f3612c0: i64 = undef
try.c: 0x55899f3c28b0: 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: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: i32 = Constant<0>
try.c: 0x55899f3c2780: 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