Implementation notes: amd64, cel02, crypto_sign/sphincss192sha256robust

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincss192sha256robust
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
335548003661368 0 091863 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
600940955452699 0 078370 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
614125833053551 0 080879 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
619712584252115 0 079063 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
758560211250213 0 075935 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1287663723619576 0 045367 832 1640T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1740567544425568 0 056063 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1922042716621302 0 048655 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2032159874021001 0 046658 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2400099647223662 0 051128 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2427473066021650 0 048631 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: 0x5565686d5350: v4i64 = X86ISD::VTRUNC 0x5565686d5220
try.c: 0x5565686d5220: v16i32 = vselect 0x5565686db6a0, 0x55656865f850, 0x5565686d50f0
try.c: 0x5565686db6a0: v4i1 = X86ISD::PCMPGTM 0x5565686bd9f0, 0x5565686b9580
try.c: 0x5565686bd9f0: v4i64 = X86ISD::VBROADCAST 0x55656864b1e0
try.c: 0x55656864b1e0: i64,ch = load<LD8[%lsr.iv6971]> 0x5565685ce9b0, 0x5565686b0870, undef:i64
try.c: 0x5565686b0870: i64,ch = CopyFromReg 0x5565685ce9b0, Register:i64 %vreg50
try.c: 0x5565686b97e0: i64 = Register %vreg50
try.c: 0x55656865dec0: i64 = undef
try.c: 0x5565686b9580: v4i64,ch = CopyFromReg 0x5565685ce9b0, Register:v4i64 %vreg13
try.c: 0x5565686be240: v4i64 = Register %vreg13
try.c: 0x55656865f850: v16i32 = X86ISD::VBROADCAST 0x5565686bdc50
try.c: 0x5565686bdc50: i32,ch = load<LD4[ConstantPool]> 0x5565685ce9b0, 0x556568658960, undef:i64
try.c: 0x556568658960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5565686a8600: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55656865dec0: i64 = undef
try.c: 0x5565686d50f0: 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: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: i32 = Constant<0>
try.c: 0x5565686d4fc0: 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: 0x55f0b6fde4a0: v4i64 = X86ISD::VTRUNC 0x55f0b6fde370
try.c: 0x55f0b6fde370: v16i32 = vselect 0x55f0b6ff0f30, 0x55f0b6f6aec0, 0x55f0b6fde240
try.c: 0x55f0b6ff0f30: v4i1 = X86ISD::PCMPGTM 0x55f0b6fd5690, 0x55f0b6fd29a0
try.c: 0x55f0b6fd5690: v4i64 = X86ISD::VBROADCAST 0x55f0b6f6b380
try.c: 0x55f0b6f6b380: i64,ch = load<LD8[%lsr.iv6971]> 0x55f0b6ecfa40, 0x55f0b6f92320, undef:i64
try.c: 0x55f0b6f92320: i64,ch = CopyFromReg 0x55f0b6ecfa40, Register:i64 %vreg50
try.c: 0x55f0b6fd2c00: i64 = Register %vreg50
try.c: 0x55f0b6f56970: i64 = undef
try.c: 0x55f0b6fd29a0: v4i64,ch = CopyFromReg 0x55f0b6ecfa40, Register:v4i64 %vreg13
try.c: 0x55f0b6fd5ee0: v4i64 = Register %vreg13
try.c: 0x55f0b6f6aec0: v16i32 = X86ISD::VBROADCAST 0x55f0b6fd58f0
try.c: 0x55f0b6fd58f0: i32,ch = load<LD4[ConstantPool]> 0x55f0b6ecfa40, 0x55f0b6f6ea30, undef:i64
try.c: 0x55f0b6f6ea30: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55f0b6f572f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55f0b6f56970: i64 = undef
try.c: 0x55f0b6fde240: 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: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: i32 = Constant<0>
try.c: 0x55f0b6fde110: 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: 0x56464c7b4ea0: v4i64 = X86ISD::VTRUNC 0x56464c7b4d70
try.c: 0x56464c7b4d70: v16i32 = vselect 0x56464c7af870, 0x56464c7525e0, 0x56464c7b4c40
try.c: 0x56464c7af870: v4i1 = X86ISD::PCMPGTM 0x56464c7ae860, 0x56464c7aa3f0
try.c: 0x56464c7ae860: v4i64 = X86ISD::VBROADCAST 0x56464c75c5d0
try.c: 0x56464c75c5d0: i64,ch = load<LD8[%lsr.iv6971]> 0x56464c6bf970, 0x56464c799390, undef:i64
try.c: 0x56464c799390: i64,ch = CopyFromReg 0x56464c6bf970, Register:i64 %vreg50
try.c: 0x56464c7aa650: i64 = Register %vreg50
try.c: 0x56464c75daa0: i64 = undef
try.c: 0x56464c7aa3f0: v4i64,ch = CopyFromReg 0x56464c6bf970, Register:v4i64 %vreg13
try.c: 0x56464c7af0b0: v4i64 = Register %vreg13
try.c: 0x56464c7525e0: v16i32 = X86ISD::VBROADCAST 0x56464c7aeac0
try.c: 0x56464c7aeac0: i32,ch = load<LD4[ConstantPool]> 0x56464c6bf970, 0x56464c7742f0, undef:i64
try.c: 0x56464c7742f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56464c771ad0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56464c75daa0: i64 = undef
try.c: 0x56464c7b4c40: 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: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: i32 = Constant<0>
try.c: 0x56464c7b4b10: 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: 0x560717fd9ec0: v4i64 = X86ISD::VTRUNC 0x560717fd9d90
try.c: 0x560717fd9d90: v16i32 = vselect 0x560717ff2450, 0x560717f7bab0, 0x560717fd9c60
try.c: 0x560717ff2450: v4i1 = X86ISD::PCMPGTM 0x560717fd4890, 0x560717fd0420
try.c: 0x560717fd4890: v4i64 = X86ISD::VBROADCAST 0x560717f8f370
try.c: 0x560717f8f370: i64,ch = load<LD8[%lsr.iv6971]> 0x560717ee5930, 0x560717fbe6f0, undef:i64
try.c: 0x560717fbe6f0: i64,ch = CopyFromReg 0x560717ee5930, Register:i64 %vreg50
try.c: 0x560717fd0680: i64 = Register %vreg50
try.c: 0x560717f90840: i64 = undef
try.c: 0x560717fd0420: v4i64,ch = CopyFromReg 0x560717ee5930, Register:v4i64 %vreg13
try.c: 0x560717fd50e0: v4i64 = Register %vreg13
try.c: 0x560717f7bab0: v16i32 = X86ISD::VBROADCAST 0x560717fd4af0
try.c: 0x560717fd4af0: i32,ch = load<LD4[ConstantPool]> 0x560717ee5930, 0x560717f8e950, undef:i64
try.c: 0x560717f8e950: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x560717fbf8f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x560717f90840: i64 = undef
try.c: 0x560717fd9c60: 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: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: i32 = Constant<0>
try.c: 0x560717fd9b30: 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: 0x55697bd52ea0: v4i64 = X86ISD::VTRUNC 0x55697bd52d70
try.c: 0x55697bd52d70: v16i32 = vselect 0x55697bd59a80, 0x55697bceb290, 0x55697bd52c40
try.c: 0x55697bd59a80: v4i1 = X86ISD::PCMPGTM 0x55697bd3a530, 0x55697bd317d0
try.c: 0x55697bd3a530: v4i64 = X86ISD::VBROADCAST 0x55697bceb750
try.c: 0x55697bceb750: i64,ch = load<LD8[%lsr.iv6971]> 0x55697bc35a40, 0x55697bceddc0, undef:i64
try.c: 0x55697bceddc0: i64,ch = CopyFromReg 0x55697bc35a40, Register:i64 %vreg50
try.c: 0x55697bd31a30: i64 = Register %vreg50
try.c: 0x55697bce7ce0: i64 = undef
try.c: 0x55697bd317d0: v4i64,ch = CopyFromReg 0x55697bc35a40, Register:v4i64 %vreg13
try.c: 0x55697bd3ad80: v4i64 = Register %vreg13
try.c: 0x55697bceb290: v16i32 = X86ISD::VBROADCAST 0x55697bd3a790
try.c: 0x55697bd3a790: i32,ch = load<LD4[ConstantPool]> 0x55697bc35a40, 0x55697bcd8110, undef:i64
try.c: 0x55697bcd8110: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55697bce8660: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55697bce7ce0: i64 = undef
try.c: 0x55697bd52c40: 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: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: i32 = Constant<0>
try.c: 0x55697bd52b10: 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: 0x556258234290: v4i64 = X86ISD::VTRUNC 0x556258234160
try.c: 0x556258234160: v16i32 = vselect 0x556258250cd0, 0x5562581d67c0, 0x556258234030
try.c: 0x556258250cd0: v4i1 = X86ISD::PCMPGTM 0x55625822d920, 0x5562582294b0
try.c: 0x55625822d920: v4i64 = X86ISD::VBROADCAST 0x5562581d3960
try.c: 0x5562581d3960: i64,ch = load<LD8[%lsr.iv6971]> 0x55625813e950, 0x5562582175e0, undef:i64
try.c: 0x5562582175e0: i64,ch = CopyFromReg 0x55625813e950, Register:i64 %vreg50
try.c: 0x556258229710: i64 = Register %vreg50
try.c: 0x5562581d4e30: i64 = undef
try.c: 0x5562582294b0: v4i64,ch = CopyFromReg 0x55625813e950, Register:v4i64 %vreg13
try.c: 0x55625822e170: v4i64 = Register %vreg13
try.c: 0x5562581d67c0: v16i32 = X86ISD::VBROADCAST 0x55625822db80
try.c: 0x55625822db80: i32,ch = load<LD4[ConstantPool]> 0x55625813e950, 0x5562581cf100, undef:i64
try.c: 0x5562581cf100: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5562582187e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5562581d4e30: i64 = undef
try.c: 0x556258234030: 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: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: i32 = Constant<0>
try.c: 0x556258233f00: 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