Implementation notes: amd64, cel02, crypto_sign/sphincsf128sha256simple

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_sign
Primitive: sphincsf128sha256simple
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6185543052272 0 079543 840 1672T:avx2gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
10253349259504 0 089927 840 1704T:avx2gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
10287762451617 0 077234 808 1640T:avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
10675746050899 0 077767 840 1672T:avx2gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11992401449446 0 075167 832 1640T:avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
18952319421244 0 048167 840 1672T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
26705270224686 0 055111 840 1704T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
29117930420864 0 048159 840 1672T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
31162524820636 0 046242 808 1640T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
37232114822818 0 050224 816 1640T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
39412350419463 0 045247 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: 0x558779ab1230: v4i64 = X86ISD::VTRUNC 0x558779ab1100
try.c: 0x558779ab1100: v16i32 = vselect 0x558779ac1350, 0x558779a572f0, 0x558779ab0fd0
try.c: 0x558779ac1350: v4i1 = X86ISD::PCMPGTM 0x558779aa9fe0, 0x558779aa5b70
try.c: 0x558779aa9fe0: v4i64 = X86ISD::VBROADCAST 0x558779a54490
try.c: 0x558779a54490: i64,ch = load<LD8[%lsr.iv6971]> 0x5587799ba960, 0x558779a9c7c0, undef:i64
try.c: 0x558779a9c7c0: i64,ch = CopyFromReg 0x5587799ba960, Register:i64 %vreg50
try.c: 0x558779aa5dd0: i64 = Register %vreg50
try.c: 0x558779a55960: i64 = undef
try.c: 0x558779aa5b70: v4i64,ch = CopyFromReg 0x5587799ba960, Register:v4i64 %vreg13
try.c: 0x558779aaa830: v4i64 = Register %vreg13
try.c: 0x558779a572f0: v16i32 = X86ISD::VBROADCAST 0x558779aaa240
try.c: 0x558779aaa240: i32,ch = load<LD4[ConstantPool]> 0x5587799ba960, 0x558779a4dcf0, undef:i64
try.c: 0x558779a4dcf0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558779a6f4b0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x558779a55960: i64 = undef
try.c: 0x558779ab0fd0: 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: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: i32 = Constant<0>
try.c: 0x558779ab0ea0: 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: 0x56018f1effd0: v4i64 = X86ISD::VTRUNC 0x56018f1efea0
try.c: 0x56018f1efea0: v16i32 = vselect 0x56018f1f5f70, 0x56018f175fc0, 0x56018f1efd70
try.c: 0x56018f1f5f70: v4i1 = X86ISD::PCMPGTM 0x56018f1d71e0, 0x56018f1d2d70
try.c: 0x56018f1d71e0: v4i64 = X86ISD::VBROADCAST 0x56018f176480
try.c: 0x56018f176480: i64,ch = load<LD8[%lsr.iv6971]> 0x56018f0d0a40, 0x56018f17a390, undef:i64
try.c: 0x56018f17a390: i64,ch = CopyFromReg 0x56018f0d0a40, Register:i64 %vreg50
try.c: 0x56018f1d2fd0: i64 = Register %vreg50
try.c: 0x56018f172740: i64 = undef
try.c: 0x56018f1d2d70: v4i64,ch = CopyFromReg 0x56018f0d0a40, Register:v4i64 %vreg13
try.c: 0x56018f1d7a30: v4i64 = Register %vreg13
try.c: 0x56018f175fc0: v16i32 = X86ISD::VBROADCAST 0x56018f1d7440
try.c: 0x56018f1d7440: i32,ch = load<LD4[ConstantPool]> 0x56018f0d0a40, 0x56018f178960, undef:i64
try.c: 0x56018f178960: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56018f1730c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56018f172740: i64 = undef
try.c: 0x56018f1efd70: 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: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: i32 = Constant<0>
try.c: 0x56018f1efc40: 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: 0x55deeda8ae60: v4i64 = X86ISD::VTRUNC 0x55deeda8ad30
try.c: 0x55deeda8ad30: v16i32 = vselect 0x55deedaa13d0, 0x55deeda2f450, 0x55deeda8ac00
try.c: 0x55deedaa13d0: v4i1 = X86ISD::PCMPGTM 0x55deeda86840, 0x55deeda823d0
try.c: 0x55deeda86840: v4i64 = X86ISD::VBROADCAST 0x55deeda2c5f0
try.c: 0x55deeda2c5f0: i64,ch = load<LD8[%lsr.iv6971]> 0x55deed997940, 0x55deeda70ef0, undef:i64
try.c: 0x55deeda70ef0: i64,ch = CopyFromReg 0x55deed997940, Register:i64 %vreg50
try.c: 0x55deeda82630: i64 = Register %vreg50
try.c: 0x55deeda2dac0: i64 = undef
try.c: 0x55deeda823d0: v4i64,ch = CopyFromReg 0x55deed997940, Register:v4i64 %vreg13
try.c: 0x55deeda87090: v4i64 = Register %vreg13
try.c: 0x55deeda2f450: v16i32 = X86ISD::VBROADCAST 0x55deeda86aa0
try.c: 0x55deeda86aa0: i32,ch = load<LD4[ConstantPool]> 0x55deed997940, 0x55deeda2a9c0, undef:i64
try.c: 0x55deeda2a9c0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55deeda79730: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55deeda2dac0: i64 = undef
try.c: 0x55deeda8ac00: 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: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: i32 = Constant<0>
try.c: 0x55deeda8aad0: 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: 0x55dc0a949400: v4i64 = X86ISD::VTRUNC 0x55dc0a9492d0
try.c: 0x55dc0a9492d0: v16i32 = vselect 0x55dc0a943dd0, 0x55dc0a8ea760, 0x55dc0a9491a0
try.c: 0x55dc0a943dd0: v4i1 = X86ISD::PCMPGTM 0x55dc0a942dc0, 0x55dc0a9400d0
try.c: 0x55dc0a942dc0: v4i64 = X86ISD::VBROADCAST 0x55dc0a8fa190
try.c: 0x55dc0a8fa190: i64,ch = load<LD8[%lsr.iv6971]> 0x55dc0a854970, 0x55dc0a93a320, undef:i64
try.c: 0x55dc0a93a320: i64,ch = CopyFromReg 0x55dc0a854970, Register:i64 %vreg50
try.c: 0x55dc0a940330: i64 = Register %vreg50
try.c: 0x55dc0a8fb660: i64 = undef
try.c: 0x55dc0a9400d0: v4i64,ch = CopyFromReg 0x55dc0a854970, Register:v4i64 %vreg13
try.c: 0x55dc0a943610: v4i64 = Register %vreg13
try.c: 0x55dc0a8ea760: v16i32 = X86ISD::VBROADCAST 0x55dc0a943020
try.c: 0x55dc0a943020: i32,ch = load<LD4[ConstantPool]> 0x55dc0a854970, 0x55dc0a8e5500, undef:i64
try.c: 0x55dc0a8e5500: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55dc0a90e150: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55dc0a8fb660: i64 = undef
try.c: 0x55dc0a9491a0: 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: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: i32 = Constant<0>
try.c: 0x55dc0a949070: 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: 0x555fe0e1b130: v4i64 = X86ISD::VTRUNC 0x555fe0e1b000
try.c: 0x555fe0e1b000: v16i32 = vselect 0x555fe0e15b00, 0x555fe0daf170, 0x555fe0e1aed0
try.c: 0x555fe0e15b00: v4i1 = X86ISD::PCMPGTM 0x555fe0e14af0, 0x555fe0dd1120
try.c: 0x555fe0e14af0: v4i64 = X86ISD::VBROADCAST 0x555fe0daf630
try.c: 0x555fe0daf630: i64,ch = load<LD8[%lsr.iv6971]> 0x555fe0d0ea30, 0x555fe0da9730, undef:i64
try.c: 0x555fe0da9730: i64,ch = CopyFromReg 0x555fe0d0ea30, Register:i64 %vreg50
try.c: 0x555fe0dd1380: i64 = Register %vreg50
try.c: 0x555fe0d8dc40: i64 = undef
try.c: 0x555fe0dd1120: v4i64,ch = CopyFromReg 0x555fe0d0ea30, Register:v4i64 %vreg13
try.c: 0x555fe0e15340: v4i64 = Register %vreg13
try.c: 0x555fe0daf170: v16i32 = X86ISD::VBROADCAST 0x555fe0e14d50
try.c: 0x555fe0e14d50: i32,ch = load<LD4[ConstantPool]> 0x555fe0d0ea30, 0x555fe0da7d00, undef:i64
try.c: 0x555fe0da7d00: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x555fe0d8e5c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x555fe0d8dc40: i64 = undef
try.c: 0x555fe0e1aed0: 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: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: i32 = Constant<0>
try.c: 0x555fe0e1ada0: 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: 0x5562a2f7bb20: v4i64 = X86ISD::VTRUNC 0x5562a2f7b9f0
try.c: 0x5562a2f7b9f0: v16i32 = vselect 0x5562a2f82e90, 0x5562a2f0f260, 0x5562a2f7b8c0
try.c: 0x5562a2f82e90: v4i1 = X86ISD::PCMPGTM 0x5562a2f621b0, 0x5562a2f5dd40
try.c: 0x5562a2f621b0: v4i64 = X86ISD::VBROADCAST 0x5562a2f1c380
try.c: 0x5562a2f1c380: i64,ch = load<LD8[%lsr.iv6971]> 0x5562a2e72950, 0x5562a2f545a0, undef:i64
try.c: 0x5562a2f545a0: i64,ch = CopyFromReg 0x5562a2e72950, Register:i64 %vreg50
try.c: 0x5562a2f5dfa0: i64 = Register %vreg50
try.c: 0x5562a2f1d850: i64 = undef
try.c: 0x5562a2f5dd40: v4i64,ch = CopyFromReg 0x5562a2e72950, Register:v4i64 %vreg13
try.c: 0x5562a2f62a00: v4i64 = Register %vreg13
try.c: 0x5562a2f0f260: v16i32 = X86ISD::VBROADCAST 0x5562a2f62410
try.c: 0x5562a2f62410: i32,ch = load<LD4[ConstantPool]> 0x5562a2e72950, 0x5562a2f02c60, undef:i64
try.c: 0x5562a2f02c60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5562a2f483a0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5562a2f1d850: i64 = undef
try.c: 0x5562a2f7b8c0: 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: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: i32 = Constant<0>
try.c: 0x5562a2f7b790: 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