Implementation notes: amd64, cel02, crypto_sign/sphincsf192sha256simple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf192sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
9005306852964 0 080295 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
14829794651496 0 078447 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
15942430860517 0 091023 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
16058853652163 0 077826 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
18672029224966 0 055479 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
19579985849622 0 075351 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
37326870821156 0 048519 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
41852659020898 0 046562 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
45243702419489 0 045279 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
46064880024044 0 051464 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
47625666021508 0 048495 840 1672T:refgcc_-march=native_-mtune=native_-O_-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: 0x558907b188d0: v4i64 = X86ISD::VTRUNC 0x558907b187a0
try.c: 0x558907b187a0: v16i32 = vselect 0x558907b0bb40, 0x558907abbac0, 0x558907b18670
try.c: 0x558907b0bb40: v4i1 = X86ISD::PCMPGTM 0x558907b13710, 0x558907b0f2a0
try.c: 0x558907b13710: v4i64 = X86ISD::VBROADCAST 0x558907ab85f0
try.c: 0x558907ab85f0: i64,ch = load<LD8[%lsr.iv6971]> 0x558907a24960, 0x558907b028a0, undef:i64
try.c: 0x558907b028a0: i64,ch = CopyFromReg 0x558907a24960, Register:i64 %vreg50
try.c: 0x558907b0f500: i64 = Register %vreg50
try.c: 0x558907aba130: i64 = undef
try.c: 0x558907b0f2a0: v4i64,ch = CopyFromReg 0x558907a24960, Register:v4i64 %vreg13
try.c: 0x558907b13f60: v4i64 = Register %vreg13
try.c: 0x558907abbac0: v16i32 = X86ISD::VBROADCAST 0x558907b13970
try.c: 0x558907b13970: i32,ch = load<LD4[ConstantPool]> 0x558907a24960, 0x558907ab7bd0, undef:i64
try.c: 0x558907ab7bd0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558907aaeac0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558907aba130: i64 = undef
try.c: 0x558907b18670: 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: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: i32 = Constant<0>
try.c: 0x558907b18540: 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: 0x55dd79a44730: v4i64 = X86ISD::VTRUNC 0x55dd79a44600
try.c: 0x55dd79a44600: v16i32 = vselect 0x55dd79a30c70, 0x55dd799bedf0, 0x55dd79a444d0
try.c: 0x55dd79a30c70: v4i1 = X86ISD::PCMPGTM 0x55dd79a2af80, 0x55dd79a26500
try.c: 0x55dd79a2af80: v4i64 = X86ISD::VBROADCAST 0x55dd799bf2b0
try.c: 0x55dd799bf2b0: i64,ch = load<LD8[%lsr.iv6971]> 0x55dd79924a40, 0x55dd799da7c0, undef:i64
try.c: 0x55dd799da7c0: i64,ch = CopyFromReg 0x55dd79924a40, Register:i64 %vreg50
try.c: 0x55dd79a26760: i64 = Register %vreg50
try.c: 0x55dd799e4ea0: i64 = undef
try.c: 0x55dd79a26500: v4i64,ch = CopyFromReg 0x55dd79924a40, Register:v4i64 %vreg13
try.c: 0x55dd79a2b7d0: v4i64 = Register %vreg13
try.c: 0x55dd799bedf0: v16i32 = X86ISD::VBROADCAST 0x55dd79a2b1e0
try.c: 0x55dd79a2b1e0: i32,ch = load<LD4[ConstantPool]> 0x55dd79924a40, 0x55dd799c1790, undef:i64
try.c: 0x55dd799c1790: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55dd799e5820: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55dd799e4ea0: i64 = undef
try.c: 0x55dd79a444d0: 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: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: i32 = Constant<0>
try.c: 0x55dd79a443a0: 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: 0x5559026a24a0: v4i64 = X86ISD::VTRUNC 0x5559026a2370
try.c: 0x5559026a2370: v16i32 = vselect 0x55590268e760, 0x55590263e0b0, 0x5559026a2240
try.c: 0x55590268e760: v4i1 = X86ISD::PCMPGTM 0x555902687b20, 0x5559026836b0
try.c: 0x555902687b20: v4i64 = X86ISD::VBROADCAST 0x55590262bb90
try.c: 0x55590262bb90: i64,ch = load<LD8[%lsr.iv6971]> 0x555902598950, 0x55590267a9a0, undef:i64
try.c: 0x55590267a9a0: i64,ch = CopyFromReg 0x555902598950, Register:i64 %vreg50
try.c: 0x555902683910: i64 = Register %vreg50
try.c: 0x55590263c720: i64 = undef
try.c: 0x5559026836b0: v4i64,ch = CopyFromReg 0x555902598950, Register:v4i64 %vreg13
try.c: 0x555902688370: v4i64 = Register %vreg13
try.c: 0x55590263e0b0: v16i32 = X86ISD::VBROADCAST 0x555902687d80
try.c: 0x555902687d80: i32,ch = load<LD4[ConstantPool]> 0x555902598950, 0x55590262b170, undef:i64
try.c: 0x55590262b170: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555902671680: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55590263c720: i64 = undef
try.c: 0x5559026a2240: 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: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: i32 = Constant<0>
try.c: 0x5559026a2110: 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: 0x55c5a9aea1f0: v4i64 = X86ISD::VTRUNC 0x55c5a9aea0c0
try.c: 0x55c5a9aea0c0: v16i32 = vselect 0x55c5a9aedac0, 0x55c5a9a8b300, 0x55c5a9ae9f90
try.c: 0x55c5a9aedac0: v4i1 = X86ISD::PCMPGTM 0x55c5a9ae2fa0, 0x55c5a9adeb30
try.c: 0x55c5a9ae2fa0: v4i64 = X86ISD::VBROADCAST 0x55c5a9a87290
try.c: 0x55c5a9a87290: i64,ch = load<LD8[%lsr.iv6971]> 0x55c5a99f3950, 0x55c5a9ad53c0, undef:i64
try.c: 0x55c5a9ad53c0: i64,ch = CopyFromReg 0x55c5a99f3950, Register:i64 %vreg50
try.c: 0x55c5a9aded90: i64 = Register %vreg50
try.c: 0x55c5a9a89970: i64 = undef
try.c: 0x55c5a9adeb30: v4i64,ch = CopyFromReg 0x55c5a99f3950, Register:v4i64 %vreg13
try.c: 0x55c5a9ae37f0: v4i64 = Register %vreg13
try.c: 0x55c5a9a8b300: v16i32 = X86ISD::VBROADCAST 0x55c5a9ae3200
try.c: 0x55c5a9ae3200: i32,ch = load<LD4[ConstantPool]> 0x55c5a99f3950, 0x55c5a9a86870, undef:i64
try.c: 0x55c5a9a86870: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c5a9ac9cc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c5a9a89970: i64 = undef
try.c: 0x55c5a9ae9f90: 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: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: i32 = Constant<0>
try.c: 0x55c5a9ae9e60: 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: 0x5642e8105990: v4i64 = X86ISD::VTRUNC 0x5642e8105860
try.c: 0x5642e8105860: v16i32 = vselect 0x5642e8100360, 0x5642e807fc80, 0x5642e8105730
try.c: 0x5642e8100360: v4i1 = X86ISD::PCMPGTM 0x5642e80e71c0, 0x5642e80e2d50
try.c: 0x5642e80e71c0: v4i64 = X86ISD::VBROADCAST 0x5642e8080140
try.c: 0x5642e8080140: i64,ch = load<LD8[%lsr.iv6971]> 0x5642e7fe0a30, 0x5642e8081640, undef:i64
try.c: 0x5642e8081640: i64,ch = CopyFromReg 0x5642e7fe0a30, Register:i64 %vreg50
try.c: 0x5642e80e2fb0: i64 = Register %vreg50
try.c: 0x5642e8095700: i64 = undef
try.c: 0x5642e80e2d50: v4i64,ch = CopyFromReg 0x5642e7fe0a30, Register:v4i64 %vreg13
try.c: 0x5642e80e7a10: v4i64 = Register %vreg13
try.c: 0x5642e807fc80: v16i32 = X86ISD::VBROADCAST 0x5642e80e7420
try.c: 0x5642e80e7420: i32,ch = load<LD4[ConstantPool]> 0x5642e7fe0a30, 0x5642e80878a0, undef:i64
try.c: 0x5642e80878a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5642e8096080: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5642e8095700: i64 = undef
try.c: 0x5642e8105730: 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: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: i32 = Constant<0>
try.c: 0x5642e8105600: 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: 0x556f24ac7ba0: v4i64 = X86ISD::VTRUNC 0x556f24ac7a70
try.c: 0x556f24ac7a70: v16i32 = vselect 0x556f24ac4580, 0x556f24a64540, 0x556f24ac7940
try.c: 0x556f24ac4580: v4i1 = X86ISD::PCMPGTM 0x556f24abfab0, 0x556f24abb640
try.c: 0x556f24abfab0: v4i64 = X86ISD::VBROADCAST 0x556f24a5fab0
try.c: 0x556f24a5fab0: i64,ch = load<LD8[%lsr.iv6971]> 0x556f249d0960, 0x556f24aaade0, undef:i64
try.c: 0x556f24aaade0: i64,ch = CopyFromReg 0x556f249d0960, Register:i64 %vreg50
try.c: 0x556f24abb8a0: i64 = Register %vreg50
try.c: 0x556f24a62bb0: i64 = undef
try.c: 0x556f24abb640: v4i64,ch = CopyFromReg 0x556f249d0960, Register:v4i64 %vreg13
try.c: 0x556f24ac0300: v4i64 = Register %vreg13
try.c: 0x556f24a64540: v16i32 = X86ISD::VBROADCAST 0x556f24abfd10
try.c: 0x556f24abfd10: i32,ch = load<LD4[ConstantPool]> 0x556f249d0960, 0x556f24a5f090, undef:i64
try.c: 0x556f24a5f090: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556f24aa94c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556f24a62bb0: i64 = undef
try.c: 0x556f24ac7940: 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: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: i32 = Constant<0>
try.c: 0x556f24ac7810: 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