Implementation notes: amd64, cel02, crypto_sign/sphincss128sha256robust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincss128sha256robust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
310309909452044 0 077666 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
315476094651453 0 078335 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
319317194060717 0 091135 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
338758185252833 0 080095 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
404144465050019 0 075735 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
421949948620998 0 048279 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
531146882221358 0 048287 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
542775323822744 0 050144 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
707213222025296 0 055711 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
819084483220700 0 046306 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
997777804019553 0 045335 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: 0x563021e15360: v4i64 = X86ISD::VTRUNC 0x563021e15230
try.c: 0x563021e15230: v16i32 = vselect 0x563021e26d70, 0x563021da9730, 0x563021e15100
try.c: 0x563021e26d70: v4i1 = X86ISD::PCMPGTM 0x563021dfda00, 0x563021df9590
try.c: 0x563021dfda00: v4i64 = X86ISD::VBROADCAST 0x563021d9dab0
try.c: 0x563021d9dab0: i64,ch = load<LD8[%lsr.iv6971]> 0x563021d0e930, 0x563021de8fe0, undef:i64
try.c: 0x563021de8fe0: i64,ch = CopyFromReg 0x563021d0e930, Register:i64 %vreg50
try.c: 0x563021df97f0: i64 = Register %vreg50
try.c: 0x563021d9ef80: i64 = undef
try.c: 0x563021df9590: v4i64,ch = CopyFromReg 0x563021d0e930, Register:v4i64 %vreg13
try.c: 0x563021dfe250: v4i64 = Register %vreg13
try.c: 0x563021da9730: v16i32 = X86ISD::VBROADCAST 0x563021dfdc60
try.c: 0x563021dfdc60: i32,ch = load<LD4[ConstantPool]> 0x563021d0e930, 0x563021da20f0, undef:i64
try.c: 0x563021da20f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x563021dbf250: i64 = TargetConstantPool<i32 1> 0
try.c: 0x563021d9ef80: i64 = undef
try.c: 0x563021e15100: 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: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: i32 = Constant<0>
try.c: 0x563021e14fd0: 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: 0x555d1cd726a0: v4i64 = X86ISD::VTRUNC 0x555d1cd72570
try.c: 0x555d1cd72570: v16i32 = vselect 0x555d1cd60fc0, 0x555d1cce1450, 0x555d1cd72440
try.c: 0x555d1cd60fc0: v4i1 = X86ISD::PCMPGTM 0x555d1cd4d9e0, 0x555d1cd49570
try.c: 0x555d1cd4d9e0: v4i64 = X86ISD::VBROADCAST 0x555d1cce1910
try.c: 0x555d1cce1910: i64,ch = load<LD8[%lsr.iv6971]> 0x555d1cc47a30, 0x555d1ccee1d0, undef:i64
try.c: 0x555d1ccee1d0: i64,ch = CopyFromReg 0x555d1cc47a30, Register:i64 %vreg50
try.c: 0x555d1cd497d0: i64 = Register %vreg50
try.c: 0x555d1cce9540: i64 = undef
try.c: 0x555d1cd49570: v4i64,ch = CopyFromReg 0x555d1cc47a30, Register:v4i64 %vreg13
try.c: 0x555d1cd4e230: v4i64 = Register %vreg13
try.c: 0x555d1cce1450: v16i32 = X86ISD::VBROADCAST 0x555d1cd4dc40
try.c: 0x555d1cd4dc40: i32,ch = load<LD4[ConstantPool]> 0x555d1cc47a30, 0x555d1cce3df0, undef:i64
try.c: 0x555d1cce3df0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555d1cce9ec0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555d1cce9540: i64 = undef
try.c: 0x555d1cd72440: 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: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: i32 = Constant<0>
try.c: 0x555d1cd72310: 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: 0x556d8bdfa6b0: v4i64 = X86ISD::VTRUNC 0x556d8bdfa580
try.c: 0x556d8bdfa580: v16i32 = vselect 0x556d8be19650, 0x556d8bd99060, 0x556d8bdfa450
try.c: 0x556d8be19650: v4i1 = X86ISD::PCMPGTM 0x556d8bdf6090, 0x556d8bdf1c20
try.c: 0x556d8bdf6090: v4i64 = X86ISD::VBROADCAST 0x556d8bd9b920
try.c: 0x556d8bd9b920: i64,ch = load<LD8[%lsr.iv6971]> 0x556d8bd06920, 0x556d8bddfe30, undef:i64
try.c: 0x556d8bddfe30: i64,ch = CopyFromReg 0x556d8bd06920, Register:i64 %vreg50
try.c: 0x556d8bdf1e80: i64 = Register %vreg50
try.c: 0x556d8bd9cdf0: i64 = undef
try.c: 0x556d8bdf1c20: v4i64,ch = CopyFromReg 0x556d8bd06920, Register:v4i64 %vreg13
try.c: 0x556d8bdf68e0: v4i64 = Register %vreg13
try.c: 0x556d8bd99060: v16i32 = X86ISD::VBROADCAST 0x556d8bdf62f0
try.c: 0x556d8bdf62f0: i32,ch = load<LD4[ConstantPool]> 0x556d8bd06920, 0x556d8bd95cb0, undef:i64
try.c: 0x556d8bd95cb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556d8bddac20: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556d8bd9cdf0: i64 = undef
try.c: 0x556d8bdfa450: 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: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: i32 = Constant<0>
try.c: 0x556d8bdfa320: 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: 0x5606993923d0: v4i64 = X86ISD::VTRUNC 0x5606993922a0
try.c: 0x5606993922a0: v16i32 = vselect 0x56069938edb0, 0x560699337260, 0x560699392170
try.c: 0x56069938edb0: v4i1 = X86ISD::PCMPGTM 0x560699377a40, 0x5606993735d0
try.c: 0x560699377a40: v4i64 = X86ISD::VBROADCAST 0x56069931bb40
try.c: 0x56069931bb40: i64,ch = load<LD8[%lsr.iv6971]> 0x560699288950, 0x5606993616b0, undef:i64
try.c: 0x5606993616b0: i64,ch = CopyFromReg 0x560699288950, Register:i64 %vreg50
try.c: 0x560699373830: i64 = Register %vreg50
try.c: 0x5606993358d0: i64 = undef
try.c: 0x5606993735d0: v4i64,ch = CopyFromReg 0x560699288950, Register:v4i64 %vreg13
try.c: 0x560699378290: v4i64 = Register %vreg13
try.c: 0x560699337260: v16i32 = X86ISD::VBROADCAST 0x560699377ca0
try.c: 0x560699377ca0: i32,ch = load<LD4[ConstantPool]> 0x560699288950, 0x56069931b120, undef:i64
try.c: 0x56069931b120: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560699362ca0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5606993358d0: i64 = undef
try.c: 0x560699392170: 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: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: i32 = Constant<0>
try.c: 0x560699392040: 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: 0x557416138110: v4i64 = X86ISD::VTRUNC 0x557416137fe0
try.c: 0x557416137fe0: v16i32 = vselect 0x557416134af0, 0x5574160b4da0, 0x557416137eb0
try.c: 0x557416134af0: v4i1 = X86ISD::PCMPGTM 0x557416120fa0, 0x55741611db40
try.c: 0x557416120fa0: v4i64 = X86ISD::VBROADCAST 0x5574160b5260
try.c: 0x5574160b5260: i64,ch = load<LD8[%lsr.iv6971]> 0x55741601ba30, 0x5574160bcf20, undef:i64
try.c: 0x5574160bcf20: i64,ch = CopyFromReg 0x55741601ba30, Register:i64 %vreg50
try.c: 0x55741611dda0: i64 = Register %vreg50
try.c: 0x5574160ce340: i64 = undef
try.c: 0x55741611db40: v4i64,ch = CopyFromReg 0x55741601ba30, Register:v4i64 %vreg13
try.c: 0x5574161217f0: v4i64 = Register %vreg13
try.c: 0x5574160b4da0: v16i32 = X86ISD::VBROADCAST 0x557416121200
try.c: 0x557416121200: i32,ch = load<LD4[ConstantPool]> 0x55741601ba30, 0x5574160b7740, undef:i64
try.c: 0x5574160b7740: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5574160cecc0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5574160ce340: i64 = undef
try.c: 0x557416137eb0: 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: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: i32 = Constant<0>
try.c: 0x557416137d80: 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: 0x55e9e7bbfbf0: v4i64 = X86ISD::VTRUNC 0x55e9e7bbfac0
try.c: 0x55e9e7bbfac0: v16i32 = vselect 0x55e9e7bafde0, 0x55e9e7b57ed0, 0x55e9e7bbf990
try.c: 0x55e9e7bafde0: v4i1 = X86ISD::PCMPGTM 0x55e9e7bb79b0, 0x55e9e7bb3540
try.c: 0x55e9e7bb79b0: v4i64 = X86ISD::VBROADCAST 0x55e9e7b7cf80
try.c: 0x55e9e7b7cf80: i64,ch = load<LD8[%lsr.iv6971]> 0x55e9e7ac8950, 0x55e9e7ba3070, undef:i64
try.c: 0x55e9e7ba3070: i64,ch = CopyFromReg 0x55e9e7ac8950, Register:i64 %vreg50
try.c: 0x55e9e7bb37a0: i64 = Register %vreg50
try.c: 0x55e9e7b7e450: i64 = undef
try.c: 0x55e9e7bb3540: v4i64,ch = CopyFromReg 0x55e9e7ac8950, Register:v4i64 %vreg13
try.c: 0x55e9e7bb8200: v4i64 = Register %vreg13
try.c: 0x55e9e7b57ed0: v16i32 = X86ISD::VBROADCAST 0x55e9e7bb7c10
try.c: 0x55e9e7bb7c10: i32,ch = load<LD4[ConstantPool]> 0x55e9e7ac8950, 0x55e9e7b61f30, undef:i64
try.c: 0x55e9e7b61f30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55e9e7ba1380: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55e9e7b7e450: i64 = undef
try.c: 0x55e9e7bbf990: 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: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: i32 = Constant<0>
try.c: 0x55e9e7bbf860: 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