Implementation notes: amd64, cel02, crypto_hash/skein10241024

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: skein10241024
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1306036263 0 045524 792 736T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2149621679 0 031980 816 776T:optgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2212019606 0 029749 824 776T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2281016398 0 025552 800 776T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2632624302 0 037269 824 808T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3205636100 0 047170 800 736T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

Test failure

Implementation: T:x64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

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

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: 0x5649f30095c0: v4i64 = X86ISD::VTRUNC 0x5649f3009490
try.c: 0x5649f3009490: v16i32 = vselect 0x5649f2ffefd0, 0x5649f2fa38d0, 0x5649f3009360
try.c: 0x5649f2ffefd0: v4i1 = X86ISD::PCMPGTM 0x5649f30018f0, 0x5649f2ffd480
try.c: 0x5649f30018f0: v4i64 = X86ISD::VBROADCAST 0x5649f2fa0a70
try.c: 0x5649f2fa0a70: i64,ch = load<LD8[%lsr.iv6971]> 0x5649f2f12960, 0x5649f2feb8a0, undef:i64
try.c: 0x5649f2feb8a0: i64,ch = CopyFromReg 0x5649f2f12960, Register:i64 %vreg50
try.c: 0x5649f2ffd6e0: i64 = Register %vreg50
try.c: 0x5649f2fa1f40: i64 = undef
try.c: 0x5649f2ffd480: v4i64,ch = CopyFromReg 0x5649f2f12960, Register:v4i64 %vreg13
try.c: 0x5649f3002140: v4i64 = Register %vreg13
try.c: 0x5649f2fa38d0: v16i32 = X86ISD::VBROADCAST 0x5649f3001b50
try.c: 0x5649f3001b50: i32,ch = load<LD4[ConstantPool]> 0x5649f2f12960, 0x5649f2fb9210, undef:i64
try.c: 0x5649f2fb9210: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5649f2fecaa0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5649f2fa1f40: i64 = undef
try.c: 0x5649f3009360: 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: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: i32 = Constant<0>
try.c: 0x5649f3009230: 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: 0x55c3e7bdfc10: v4i64 = X86ISD::VTRUNC 0x55c3e7bdfae0
try.c: 0x55c3e7bdfae0: v16i32 = vselect 0x55c3e7be5ba0, 0x55c3e7b5a2e0, 0x55c3e7bdf9b0
try.c: 0x55c3e7be5ba0: v4i1 = X86ISD::PCMPGTM 0x55c3e7bc6eb0, 0x55c3e7bc2a40
try.c: 0x55c3e7bc6eb0: v4i64 = X86ISD::VBROADCAST 0x55c3e7b5a7a0
try.c: 0x55c3e7b5a7a0: i64,ch = load<LD8[%lsr.iv6971]> 0x55c3e7ac0a30, 0x55c3e7b62490, undef:i64
try.c: 0x55c3e7b62490: i64,ch = CopyFromReg 0x55c3e7ac0a30, Register:i64 %vreg50
try.c: 0x55c3e7bc2ca0: i64 = Register %vreg50
try.c: 0x55c3e7b818a0: i64 = undef
try.c: 0x55c3e7bc2a40: v4i64,ch = CopyFromReg 0x55c3e7ac0a30, Register:v4i64 %vreg13
try.c: 0x55c3e7bc7700: v4i64 = Register %vreg13
try.c: 0x55c3e7b5a2e0: v16i32 = X86ISD::VBROADCAST 0x55c3e7bc7110
try.c: 0x55c3e7bc7110: i32,ch = load<LD4[ConstantPool]> 0x55c3e7ac0a30, 0x55c3e7b5cc80, undef:i64
try.c: 0x55c3e7b5cc80: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55c3e7b82220: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55c3e7b818a0: i64 = undef
try.c: 0x55c3e7bdf9b0: 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: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: i32 = Constant<0>
try.c: 0x55c3e7bdf880: 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: 0x5594c16c2b10: v4i64 = X86ISD::VTRUNC 0x5594c16c29e0
try.c: 0x5594c16c29e0: v16i32 = vselect 0x5594c16ca9b0, 0x5594c1662c50, 0x5594c16c28b0
try.c: 0x5594c16ca9b0: v4i1 = X86ISD::PCMPGTM 0x5594c16baa50, 0x5594c16b65e0
try.c: 0x5594c16baa50: v4i64 = X86ISD::VBROADCAST 0x5594c16882f0
try.c: 0x5594c16882f0: i64,ch = load<LD8[%lsr.iv6971]> 0x5594c15cb950, 0x5594c16a61d0, undef:i64
try.c: 0x5594c16a61d0: i64,ch = CopyFromReg 0x5594c15cb950, Register:i64 %vreg50
try.c: 0x5594c16b6840: i64 = Register %vreg50
try.c: 0x5594c16612c0: i64 = undef
try.c: 0x5594c16b65e0: v4i64,ch = CopyFromReg 0x5594c15cb950, Register:v4i64 %vreg13
try.c: 0x5594c16bb2a0: v4i64 = Register %vreg13
try.c: 0x5594c1662c50: v16i32 = X86ISD::VBROADCAST 0x5594c16bacb0
try.c: 0x5594c16bacb0: i32,ch = load<LD4[ConstantPool]> 0x5594c15cb950, 0x5594c16878d0, undef:i64
try.c: 0x5594c16878d0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5594c16a0410: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5594c16612c0: i64 = undef
try.c: 0x5594c16c28b0: 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: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: i32 = Constant<0>
try.c: 0x5594c16c2780: 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