Implementation notes: amd64, cel02, crypto_sign/sphincsf256sha256simple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf256sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
26868714251806 0 078823 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
30214175061329 0 091935 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
30728644453218 0 080607 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
30804915851668 0 077346 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
36211429049627 0 075359 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
60900222223618 0 051112 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
77481182625574 0 056119 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
88162636421282 0 048703 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
93233194020645 0 046306 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
101917583021671 0 048727 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
106574900219448 0 045239 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: 0x55b08dc837e0: v4i64 = X86ISD::VTRUNC 0x55b08dc836b0
try.c: 0x55b08dc836b0: v16i32 = vselect 0x55b08dc59ef0, 0x55b08dc0ef90, 0x55b08dc83580
try.c: 0x55b08dc59ef0: v4i1 = X86ISD::PCMPGTM 0x55b08dc61ac0, 0x55b08dc5d650
try.c: 0x55b08dc61ac0: v4i64 = X86ISD::VBROADCAST 0x55b08dc1d840
try.c: 0x55b08dc1d840: i64,ch = load<LD8[%lsr.iv6971]> 0x55b08db72960, 0x55b08dc4b510, undef:i64
try.c: 0x55b08dc4b510: i64,ch = CopyFromReg 0x55b08db72960, Register:i64 %vreg50
try.c: 0x55b08dc5d8b0: i64 = Register %vreg50
try.c: 0x55b08dc0d600: i64 = undef
try.c: 0x55b08dc5d650: v4i64,ch = CopyFromReg 0x55b08db72960, Register:v4i64 %vreg13
try.c: 0x55b08dc62310: v4i64 = Register %vreg13
try.c: 0x55b08dc0ef90: v16i32 = X86ISD::VBROADCAST 0x55b08dc61d20
try.c: 0x55b08dc61d20: i32,ch = load<LD4[ConstantPool]> 0x55b08db72960, 0x55b08dc1ce20, undef:i64
try.c: 0x55b08dc1ce20: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55b08dc4c710: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55b08dc0d600: i64 = undef
try.c: 0x55b08dc83580: 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: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: i32 = Constant<0>
try.c: 0x55b08dc83450: 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: 0x557e69d25fa0: v4i64 = X86ISD::VTRUNC 0x557e69d25e70
try.c: 0x557e69d25e70: v16i32 = vselect 0x557e69d13610, 0x557e69cb5650, 0x557e69d25d40
try.c: 0x557e69d13610: v4i1 = X86ISD::PCMPGTM 0x557e69d0b230, 0x557e69d06dc0
try.c: 0x557e69d0b230: v4i64 = X86ISD::VBROADCAST 0x557e69cb5b10
try.c: 0x557e69cb5b10: i64,ch = load<LD8[%lsr.iv6971]> 0x557e69c04a40, 0x557e69caa340, undef:i64
try.c: 0x557e69caa340: i64,ch = CopyFromReg 0x557e69c04a40, Register:i64 %vreg50
try.c: 0x557e69d07020: i64 = Register %vreg50
try.c: 0x557e69c9d740: i64 = undef
try.c: 0x557e69d06dc0: v4i64,ch = CopyFromReg 0x557e69c04a40, Register:v4i64 %vreg13
try.c: 0x557e69d0ba80: v4i64 = Register %vreg13
try.c: 0x557e69cb5650: v16i32 = X86ISD::VBROADCAST 0x557e69d0b490
try.c: 0x557e69d0b490: i32,ch = load<LD4[ConstantPool]> 0x557e69c04a40, 0x557e69ca3ad0, undef:i64
try.c: 0x557e69ca3ad0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557e69c9e0c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557e69c9d740: i64 = undef
try.c: 0x557e69d25d40: 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: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: i32 = Constant<0>
try.c: 0x557e69d25c10: 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: 0x560ceab4dde0: v4i64 = X86ISD::VTRUNC 0x560ceab4dcb0
try.c: 0x560ceab4dcb0: v16i32 = vselect 0x560ceab34da0, 0x560ceaace880, 0x560ceab4db80
try.c: 0x560ceab34da0: v4i1 = X86ISD::PCMPGTM 0x560ceab2e9e0, 0x560ceab29f60
try.c: 0x560ceab2e9e0: v4i64 = X86ISD::VBROADCAST 0x560ceaaf3c40
try.c: 0x560ceaaf3c40: i64,ch = load<LD8[%lsr.iv6971]> 0x560ceaa3f950, 0x560ceab19980, undef:i64
try.c: 0x560ceab19980: i64,ch = CopyFromReg 0x560ceaa3f950, Register:i64 %vreg50
try.c: 0x560ceab2a1c0: i64 = Register %vreg50
try.c: 0x560ceaaf5110: i64 = undef
try.c: 0x560ceab29f60: v4i64,ch = CopyFromReg 0x560ceaa3f950, Register:v4i64 %vreg13
try.c: 0x560ceab2f230: v4i64 = Register %vreg13
try.c: 0x560ceaace880: v16i32 = X86ISD::VBROADCAST 0x560ceab2ec40
try.c: 0x560ceab2ec40: i32,ch = load<LD4[ConstantPool]> 0x560ceaa3f950, 0x560ceaacc460, undef:i64
try.c: 0x560ceaacc460: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560ceab0f090: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560ceaaf5110: i64 = undef
try.c: 0x560ceab4db80: 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: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: i32 = Constant<0>
try.c: 0x560ceab4da50: 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: 0x558e664a8740: v4i64 = X86ISD::VTRUNC 0x558e664a8610
try.c: 0x558e664a8610: v16i32 = vselect 0x558e66499d00, 0x558e6644b2d0, 0x558e664a84e0
try.c: 0x558e66499d00: v4i1 = X86ISD::PCMPGTM 0x558e664a38f0, 0x558e6649f480
try.c: 0x558e664a38f0: v4i64 = X86ISD::VBROADCAST 0x558e664446b0
try.c: 0x558e664446b0: i64,ch = load<LD8[%lsr.iv6971]> 0x558e663b49a0, 0x558e66496910, undef:i64
try.c: 0x558e66496910: i64,ch = CopyFromReg 0x558e663b49a0, Register:i64 %vreg50
try.c: 0x558e6649f6e0: i64 = Register %vreg50
try.c: 0x558e66449940: i64 = undef
try.c: 0x558e6649f480: v4i64,ch = CopyFromReg 0x558e663b49a0, Register:v4i64 %vreg13
try.c: 0x558e664a4140: v4i64 = Register %vreg13
try.c: 0x558e6644b2d0: v16i32 = X86ISD::VBROADCAST 0x558e664a3b50
try.c: 0x558e664a3b50: i32,ch = load<LD4[ConstantPool]> 0x558e663b49a0, 0x558e66443c90, undef:i64
try.c: 0x558e66443c90: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558e6648d710: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558e66449940: i64 = undef
try.c: 0x558e664a84e0: 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: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: i32 = Constant<0>
try.c: 0x558e664a83b0: 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: 0x564a2b415670: v4i64 = X86ISD::VTRUNC 0x564a2b415540
try.c: 0x564a2b415540: v16i32 = vselect 0x564a2b425150, 0x564a2b3a4170, 0x564a2b415410
try.c: 0x564a2b425150: v4i1 = X86ISD::PCMPGTM 0x564a2b40c5e0, 0x564a2b4098f0
try.c: 0x564a2b40c5e0: v4i64 = X86ISD::VBROADCAST 0x564a2b3a4630
try.c: 0x564a2b3a4630: i64,ch = load<LD8[%lsr.iv6971]> 0x564a2b306a40, 0x564a2b3ad370, undef:i64
try.c: 0x564a2b3ad370: i64,ch = CopyFromReg 0x564a2b306a40, Register:i64 %vreg50
try.c: 0x564a2b409b50: i64 = Register %vreg50
try.c: 0x564a2b38cc50: i64 = undef
try.c: 0x564a2b4098f0: v4i64,ch = CopyFromReg 0x564a2b306a40, Register:v4i64 %vreg13
try.c: 0x564a2b40ce30: v4i64 = Register %vreg13
try.c: 0x564a2b3a4170: v16i32 = X86ISD::VBROADCAST 0x564a2b40c840
try.c: 0x564a2b40c840: i32,ch = load<LD4[ConstantPool]> 0x564a2b306a40, 0x564a2b3a18b0, undef:i64
try.c: 0x564a2b3a18b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564a2b38d5d0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564a2b38cc50: i64 = undef
try.c: 0x564a2b415410: 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: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: i32 = Constant<0>
try.c: 0x564a2b4152e0: 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: 0x562f5a776740: v4i64 = X86ISD::VTRUNC 0x562f5a776610
try.c: 0x562f5a776610: v16i32 = vselect 0x562f5a771110, 0x562f5a713540, 0x562f5a7764e0
try.c: 0x562f5a771110: v4i1 = X86ISD::PCMPGTM 0x562f5a76c8b0, 0x562f5a768440
try.c: 0x562f5a76c8b0: v4i64 = X86ISD::VBROADCAST 0x562f5a733e70
try.c: 0x562f5a733e70: i64,ch = load<LD8[%lsr.iv6971]> 0x562f5a67d940, 0x562f5a7519e0, undef:i64
try.c: 0x562f5a7519e0: i64,ch = CopyFromReg 0x562f5a67d940, Register:i64 %vreg50
try.c: 0x562f5a7686a0: i64 = Register %vreg50
try.c: 0x562f5a735340: i64 = undef
try.c: 0x562f5a768440: v4i64,ch = CopyFromReg 0x562f5a67d940, Register:v4i64 %vreg13
try.c: 0x562f5a76d100: v4i64 = Register %vreg13
try.c: 0x562f5a713540: v16i32 = X86ISD::VBROADCAST 0x562f5a76cb10
try.c: 0x562f5a76cb10: i32,ch = load<LD4[ConstantPool]> 0x562f5a67d940, 0x562f5a70ce80, undef:i64
try.c: 0x562f5a70ce80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x562f5a756380: i64 = TargetConstantPool<i32 1> 0
try.c: 0x562f5a735340: i64 = undef
try.c: 0x562f5a7764e0: 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: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: i32 = Constant<0>
try.c: 0x562f5a7763b0: 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