Implementation notes: amd64, cel02, crypto_hash/skein256256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: skein256256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1201021580 0 031884 816 776T:x64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1222424296 0 037269 824 808T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1438216392 0 025552 800 776T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1455822845 0 035805 824 808T:x64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1468619716 0 029853 824 776T:x64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1482816589 0 025744 800 776T:x64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1514019600 0 029733 824 776T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1769621673 0 031980 816 776T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3367436257 0 045508 792 736T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
4859036094 0 047154 800 736T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt
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: 0x5593e67ecfc0: v4i64 = X86ISD::VTRUNC 0x5593e67ece90
try.c: 0x5593e67ece90: v16i32 = vselect 0x5593e6800520, 0x5593e6792780, 0x5593e67ecd60
try.c: 0x5593e6800520: v4i1 = X86ISD::PCMPGTM 0x5593e67e6990, 0x5593e67e2520
try.c: 0x5593e67e6990: v4i64 = X86ISD::VBROADCAST 0x5593e67a0db0
try.c: 0x5593e67a0db0: i64,ch = load<LD8[%lsr.iv6971]> 0x5593e66f7960, 0x5593e67d00b0, undef:i64
try.c: 0x5593e67d00b0: i64,ch = CopyFromReg 0x5593e66f7960, Register:i64 %vreg50
try.c: 0x5593e67e2780: i64 = Register %vreg50
try.c: 0x5593e67a2280: i64 = undef
try.c: 0x5593e67e2520: v4i64,ch = CopyFromReg 0x5593e66f7960, Register:v4i64 %vreg13
try.c: 0x5593e67e71e0: v4i64 = Register %vreg13
try.c: 0x5593e6792780: v16i32 = X86ISD::VBROADCAST 0x5593e67e6bf0
try.c: 0x5593e67e6bf0: i32,ch = load<LD4[ConstantPool]> 0x5593e66f7960, 0x5593e67adfe0, undef:i64
try.c: 0x5593e67adfe0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5593e67d5e60: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5593e67a2280: i64 = undef
try.c: 0x5593e67ecd60: 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: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: i32 = Constant<0>
try.c: 0x5593e67ecc30: 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:opt

Compiler output

Implementation: T:opt
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: 0x55debae396f0: v4i64 = X86ISD::VTRUNC 0x55debae395c0
try.c: 0x55debae395c0: v16i32 = vselect 0x55debae340c0, 0x55debadba410, 0x55debae39490
try.c: 0x55debae340c0: v4i1 = X86ISD::PCMPGTM 0x55debae1f130, 0x55debae1acc0
try.c: 0x55debae1f130: v4i64 = X86ISD::VBROADCAST 0x55debadba8d0
try.c: 0x55debadba8d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55debad18a30, 0x55debadb29b0, undef:i64
try.c: 0x55debadb29b0: i64,ch = CopyFromReg 0x55debad18a30, Register:i64 %vreg50
try.c: 0x55debae1af20: i64 = Register %vreg50
try.c: 0x55debadc9430: i64 = undef
try.c: 0x55debae1acc0: v4i64,ch = CopyFromReg 0x55debad18a30, Register:v4i64 %vreg13
try.c: 0x55debae1f980: v4i64 = Register %vreg13
try.c: 0x55debadba410: v16i32 = X86ISD::VBROADCAST 0x55debae1f390
try.c: 0x55debae1f390: i32,ch = load<LD4[ConstantPool]> 0x55debad18a30, 0x55debadbcdb0, undef:i64
try.c: 0x55debadbcdb0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55debadc9db0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55debadc9430: i64 = undef
try.c: 0x55debae39490: 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: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: i32 = Constant<0>
try.c: 0x55debae39360: 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:opt

Compiler output

Implementation: T:opt
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: 0x5642aaee50f0: v4i64 = X86ISD::VTRUNC 0x5642aaee4fc0
try.c: 0x5642aaee4fc0: v16i32 = vselect 0x5642aaee1ad0, 0x5642aae72080, 0x5642aaee4e90
try.c: 0x5642aaee1ad0: v4i1 = X86ISD::PCMPGTM 0x5642aaeca760, 0x5642aaec62f0
try.c: 0x5642aaeca760: v4i64 = X86ISD::VBROADCAST 0x5642aae74670
try.c: 0x5642aae74670: i64,ch = load<LD8[%lsr.iv6971]> 0x5642aaddb950, 0x5642aaeb44d0, undef:i64
try.c: 0x5642aaeb44d0: i64,ch = CopyFromReg 0x5642aaddb950, Register:i64 %vreg50
try.c: 0x5642aaec6550: i64 = Register %vreg50
try.c: 0x5642aae706f0: i64 = undef
try.c: 0x5642aaec62f0: v4i64,ch = CopyFromReg 0x5642aaddb950, Register:v4i64 %vreg13
try.c: 0x5642aaecafb0: v4i64 = Register %vreg13
try.c: 0x5642aae72080: v16i32 = X86ISD::VBROADCAST 0x5642aaeca9c0
try.c: 0x5642aaeca9c0: i32,ch = load<LD4[ConstantPool]> 0x5642aaddb950, 0x5642aae73c50, undef:i64
try.c: 0x5642aae73c50: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5642aae78380: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5642aae706f0: i64 = undef
try.c: 0x5642aaee4e90: 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: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: i32 = Constant<0>
try.c: 0x5642aaee4d60: 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:opt

Compiler output

Implementation: T:x64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
skein_block_x64.S: skein_block_x64.S:336:61: warning: trigraph ignored [-Wtrigraphs]
skein_block_x64.S: addq $LOCAL_SIZE,%rsp #get rid of locals (wipe??)
skein_block_x64.S: ^
skein_block_x64.S: skein_block_x64.S:427:13: warning: \u used with no following hex digits; treating as '\' followed by identifier [-Wunicode]
skein_block_x64.S: .elseif ((\useAddOp + 0) == 0)
skein_block_x64.S: ^
skein_block_x64.S: 2 warnings generated.
skein_block_x64.S: skein_block_x64.S:16:5: error: unknown directive
skein_block_x64.S: .altmacro
skein_block_x64.S: ^
skein_block_x64.S: skein_block_x64.S:17:5: error: unknown directive
skein_block_x64.S: .psize 0,128 #list file has no page boundaries
skein_block_x64.S: ^
skein_block_x64.S: <instantiation>:2:7: error: expected absolute expression
skein_block_x64.S: .if _RCNT_ #is there anything to do?
skein_block_x64.S: ^
skein_block_x64.S: <instantiation>:6:5: note: while in macro instantiation
skein_block_x64.S: RotL64 rbx, 256,%((4*_Rbase_+0) % 8),0
skein_block_x64.S: ^
skein_block_x64.S: skein_block_x64.S:616:1: note: while in macro instantiation
skein_block_x64.S: .rept _UNROLL_CNT*2
skein_block_x64.S: ^
skein_block_x64.S: <instantiation>:3:10: error: invalid operand for instruction
skein_block_x64.S: rolq $_RCNT_,%rbx
skein_block_x64.S: ^~~~~~~
skein_block_x64.S: ...

Number of similar (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:x64
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:x64
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:x64
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:x64
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:x64

Compiler output

Implementation: T:x64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
skein_block_x64.S: skein_block_x64.S:336:61: warning: trigraph ??) ignored, use -trigraphs to enable [-Wtrigraphs]
skein_block_x64.S: addq $LOCAL_SIZE,%rsp #get rid of locals (wipe??)
skein_block_x64.S:

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:x64
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:x64
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:x64
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:x64