Implementation notes: amd64, cel02, crypto_sign/sphincsf128sha256robust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf128sha256robust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
20193679660041 0 090463 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
20293488452052 0 077666 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
22169720851469 0 078351 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
22557471650009 0 075735 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
22842651652809 0 080079 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26265113624796 0 055215 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
52727338820974 0 048263 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
54504976220692 0 046306 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
64576329419543 0 045319 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
70352147622886 0 050288 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
70600585221374 0 048303 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: 0x560664ccf370: v4i64 = X86ISD::VTRUNC 0x560664ccf240
try.c: 0x560664ccf240: v16i32 = vselect 0x560664ceb360, 0x560664c6ee50, 0x560664ccf110
try.c: 0x560664ceb360: v4i1 = X86ISD::PCMPGTM 0x560664cc8120, 0x560664cc3cb0
try.c: 0x560664cc8120: v4i64 = X86ISD::VBROADCAST 0x560664c853d0
try.c: 0x560664c853d0: i64,ch = load<LD8[%lsr.iv6971]> 0x560664bd8970, 0x560664cba450, undef:i64
try.c: 0x560664cba450: i64,ch = CopyFromReg 0x560664bd8970, Register:i64 %vreg50
try.c: 0x560664cc3f10: i64 = Register %vreg50
try.c: 0x560664c868a0: i64 = undef
try.c: 0x560664cc3cb0: v4i64,ch = CopyFromReg 0x560664bd8970, Register:v4i64 %vreg13
try.c: 0x560664cc8970: v4i64 = Register %vreg13
try.c: 0x560664c6ee50: v16i32 = X86ISD::VBROADCAST 0x560664cc8380
try.c: 0x560664cc8380: i32,ch = load<LD4[ConstantPool]> 0x560664bd8970, 0x560664c901a0, undef:i64
try.c: 0x560664c901a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560664c8cb10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560664c868a0: i64 = undef
try.c: 0x560664ccf110: 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: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: i32 = Constant<0>
try.c: 0x560664ccefe0: 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: 0x555c7860a410: v4i64 = X86ISD::VTRUNC 0x555c7860a2e0
try.c: 0x555c7860a2e0: v16i32 = vselect 0x555c78613bc0, 0x555c7859a280, 0x555c7860a1b0
try.c: 0x555c78613bc0: v4i1 = X86ISD::PCMPGTM 0x555c785feff0, 0x555c785fab80
try.c: 0x555c785feff0: v4i64 = X86ISD::VBROADCAST 0x555c7859a740
try.c: 0x555c7859a740: i64,ch = load<LD8[%lsr.iv6971]> 0x555c784f8a20, 0x555c785ad400, undef:i64
try.c: 0x555c785ad400: i64,ch = CopyFromReg 0x555c784f8a20, Register:i64 %vreg50
try.c: 0x555c785fade0: i64 = Register %vreg50
try.c: 0x555c78596360: i64 = undef
try.c: 0x555c785fab80: v4i64,ch = CopyFromReg 0x555c784f8a20, Register:v4i64 %vreg13
try.c: 0x555c785ff840: v4i64 = Register %vreg13
try.c: 0x555c7859a280: v16i32 = X86ISD::VBROADCAST 0x555c785ff250
try.c: 0x555c785ff250: i32,ch = load<LD4[ConstantPool]> 0x555c784f8a20, 0x555c785ab9d0, undef:i64
try.c: 0x555c785ab9d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555c78596ce0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555c78596360: i64 = undef
try.c: 0x555c7860a1b0: 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: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: i32 = Constant<0>
try.c: 0x555c7860a080: 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: 0x560263b250f0: v4i64 = X86ISD::VTRUNC 0x560263b24fc0
try.c: 0x560263b24fc0: v16i32 = vselect 0x560263b21ad0, 0x560263ab2080, 0x560263b24e90
try.c: 0x560263b21ad0: v4i1 = X86ISD::PCMPGTM 0x560263b0a760, 0x560263b062f0
try.c: 0x560263b0a760: v4i64 = X86ISD::VBROADCAST 0x560263ab4670
try.c: 0x560263ab4670: i64,ch = load<LD8[%lsr.iv6971]> 0x560263a1b950, 0x560263af44d0, undef:i64
try.c: 0x560263af44d0: i64,ch = CopyFromReg 0x560263a1b950, Register:i64 %vreg50
try.c: 0x560263b06550: i64 = Register %vreg50
try.c: 0x560263ab06f0: i64 = undef
try.c: 0x560263b062f0: v4i64,ch = CopyFromReg 0x560263a1b950, Register:v4i64 %vreg13
try.c: 0x560263b0afb0: v4i64 = Register %vreg13
try.c: 0x560263ab2080: v16i32 = X86ISD::VBROADCAST 0x560263b0a9c0
try.c: 0x560263b0a9c0: i32,ch = load<LD4[ConstantPool]> 0x560263a1b950, 0x560263ab3c50, undef:i64
try.c: 0x560263ab3c50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560263ab8380: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560263ab06f0: i64 = undef
try.c: 0x560263b24e90: 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: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: i32 = Constant<0>
try.c: 0x560263b24d60: 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: 0x55d472f4d280: v4i64 = X86ISD::VTRUNC 0x55d472f4d150
try.c: 0x55d472f4d150: v16i32 = vselect 0x55d472f3d3c0, 0x55d472ede6c0, 0x55d472f4d020
try.c: 0x55d472f3d3c0: v4i1 = X86ISD::PCMPGTM 0x55d472f318f0, 0x55d472f2d480
try.c: 0x55d472f318f0: v4i64 = X86ISD::VBROADCAST 0x55d472ed9c30
try.c: 0x55d472ed9c30: i64,ch = load<LD8[%lsr.iv6971]> 0x55d472e42950, 0x55d472f1c720, undef:i64
try.c: 0x55d472f1c720: i64,ch = CopyFromReg 0x55d472e42950, Register:i64 %vreg50
try.c: 0x55d472f2d6e0: i64 = Register %vreg50
try.c: 0x55d472edcd30: i64 = undef
try.c: 0x55d472f2d480: v4i64,ch = CopyFromReg 0x55d472e42950, Register:v4i64 %vreg13
try.c: 0x55d472f32140: v4i64 = Register %vreg13
try.c: 0x55d472ede6c0: v16i32 = X86ISD::VBROADCAST 0x55d472f31b50
try.c: 0x55d472f31b50: i32,ch = load<LD4[ConstantPool]> 0x55d472e42950, 0x55d472ed9210, undef:i64
try.c: 0x55d472ed9210: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55d472ed50f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55d472edcd30: i64 = undef
try.c: 0x55d472f4d020: 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: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: i32 = Constant<0>
try.c: 0x55d472f4cef0: 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: 0x557dd7caefb0: v4i64 = X86ISD::VTRUNC 0x557dd7caee80
try.c: 0x557dd7caee80: v16i32 = vselect 0x557dd7c9c530, 0x557dd7c41670, 0x557dd7caed50
try.c: 0x557dd7c9c530: v4i1 = X86ISD::PCMPGTM 0x557dd7ca6600, 0x557dd7ca1b80
try.c: 0x557dd7ca6600: v4i64 = X86ISD::VBROADCAST 0x557dd7c41b30
try.c: 0x557dd7c41b30: i64,ch = load<LD8[%lsr.iv6971]> 0x557dd7b9fa30, 0x557dd7c57710, undef:i64
try.c: 0x557dd7c57710: i64,ch = CopyFromReg 0x557dd7b9fa30, Register:i64 %vreg50
try.c: 0x557dd7ca1de0: i64 = Register %vreg50
try.c: 0x557dd7c558d0: i64 = undef
try.c: 0x557dd7ca1b80: v4i64,ch = CopyFromReg 0x557dd7b9fa30, Register:v4i64 %vreg13
try.c: 0x557dd7ca6e50: v4i64 = Register %vreg13
try.c: 0x557dd7c41670: v16i32 = X86ISD::VBROADCAST 0x557dd7ca6860
try.c: 0x557dd7ca6860: i32,ch = load<LD4[ConstantPool]> 0x557dd7b9fa30, 0x557dd7c3a770, undef:i64
try.c: 0x557dd7c3a770: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557dd7c56250: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557dd7c558d0: i64 = undef
try.c: 0x557dd7caed50: 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: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: i32 = Constant<0>
try.c: 0x557dd7caec20: 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: 0x564e35096570: v4i64 = X86ISD::VTRUNC 0x564e35096440
try.c: 0x564e35096440: v16i32 = vselect 0x564e350afd70, 0x564e35039210, 0x564e35096310
try.c: 0x564e350afd70: v4i1 = X86ISD::PCMPGTM 0x564e3508f8b0, 0x564e3508b440
try.c: 0x564e3508f8b0: v4i64 = X86ISD::VBROADCAST 0x564e35033e00
try.c: 0x564e35033e00: i64,ch = load<LD8[%lsr.iv6971]> 0x564e34fa0940, 0x564e3507b4e0, undef:i64
try.c: 0x564e3507b4e0: i64,ch = CopyFromReg 0x564e34fa0940, Register:i64 %vreg50
try.c: 0x564e3508b6a0: i64 = Register %vreg50
try.c: 0x564e35037880: i64 = undef
try.c: 0x564e3508b440: v4i64,ch = CopyFromReg 0x564e34fa0940, Register:v4i64 %vreg13
try.c: 0x564e35090100: v4i64 = Register %vreg13
try.c: 0x564e35039210: v16i32 = X86ISD::VBROADCAST 0x564e3508fb10
try.c: 0x564e3508fb10: i32,ch = load<LD4[ConstantPool]> 0x564e34fa0940, 0x564e350333e0, undef:i64
try.c: 0x564e350333e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x564e3507ecd0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x564e35037880: i64 = undef
try.c: 0x564e35096310: 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: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: i32 = Constant<0>
try.c: 0x564e350961e0: 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