Implementation notes: amd64, cel02, crypto_hash/mgrostl256

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: mgrostl256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
3454666715 16384 081109 17264 808T:opt-64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3539461938 16384 073084 17256 776T:opt-64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
3809865411 16384 076204 17256 776T:opt-64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
6858860722 16384 070568 17240 776T:opt-64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
7426046311 0 033335 816 736T:opt-32clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
9478242908 0 032740 832 776T:opt-32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9519450995 0 040125 840 808T:opt-32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
9837842656 0 032276 832 776T:opt-32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
10223042327 0 031128 816 776T:opt-32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11396052185 0 038227 832 736T:opt-32clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
171427213012 384 024911 1216 736T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
17840783704 384 013511 1200 776T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
29750585176 384 016299 1216 776T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
30735324439 384 014507 1200 736T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
313776013968 384 028332 1224 808T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
44319084718 384 015507 1216 776T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:opt-32
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: 0x5599115c30e0: v4i64 = X86ISD::VTRUNC 0x5599115c2fb0
try.c: 0x5599115c2fb0: v16i32 = vselect 0x5599115da900, 0x559911561270, 0x5599115c2e80
try.c: 0x5599115da900: v4i1 = X86ISD::PCMPGTM 0x5599115bcab0, 0x5599115b8640
try.c: 0x5599115bcab0: v4i64 = X86ISD::VBROADCAST 0x55991155c7e0
try.c: 0x55991155c7e0: i64,ch = load<LD8[%lsr.iv6971]> 0x5599114cd950, 0x5599115a6650, undef:i64
try.c: 0x5599115a6650: i64,ch = CopyFromReg 0x5599114cd950, Register:i64 %vreg50
try.c: 0x5599115b88a0: i64 = Register %vreg50
try.c: 0x55991155f8e0: i64 = undef
try.c: 0x5599115b8640: v4i64,ch = CopyFromReg 0x5599114cd950, Register:v4i64 %vreg13
try.c: 0x5599115bd300: v4i64 = Register %vreg13
try.c: 0x559911561270: v16i32 = X86ISD::VBROADCAST 0x5599115bcd10
try.c: 0x5599115bcd10: i32,ch = load<LD4[ConstantPool]> 0x5599114cd950, 0x55991155bdc0, undef:i64
try.c: 0x55991155bdc0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55991155e1e0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55991155f8e0: i64 = undef
try.c: 0x5599115c2e80: 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: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: i32 = Constant<0>
try.c: 0x5599115c2d50: 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-32

Compiler output

Implementation: T:opt-32
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: 0x55bb12f02920: v4i64 = X86ISD::VTRUNC 0x55bb12f027f0
try.c: 0x55bb12f027f0: v16i32 = vselect 0x55bb12ef2a80, 0x55bb12e7d010, 0x55bb12f026c0
try.c: 0x55bb12ef2a80: v4i1 = X86ISD::PCMPGTM 0x55bb12edd0f0, 0x55bb12ed9280
try.c: 0x55bb12edd0f0: v4i64 = X86ISD::VBROADCAST 0x55bb12e7d4d0
try.c: 0x55bb12e7d4d0: i64,ch = load<LD8[%lsr.iv6971]> 0x55bb12dd6a00, 0x55bb12e8c1e0, undef:i64
try.c: 0x55bb12e8c1e0: i64,ch = CopyFromReg 0x55bb12dd6a00, Register:i64 %vreg50
try.c: 0x55bb12ed94e0: i64 = Register %vreg50
try.c: 0x55bb12e707f0: i64 = undef
try.c: 0x55bb12ed9280: v4i64,ch = CopyFromReg 0x55bb12dd6a00, Register:v4i64 %vreg13
try.c: 0x55bb12edd940: v4i64 = Register %vreg13
try.c: 0x55bb12e7d010: v16i32 = X86ISD::VBROADCAST 0x55bb12edd350
try.c: 0x55bb12edd350: i32,ch = load<LD4[ConstantPool]> 0x55bb12dd6a00, 0x55bb12e8a7b0, undef:i64
try.c: 0x55bb12e8a7b0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55bb12e71170: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55bb12e707f0: i64 = undef
try.c: 0x55bb12f026c0: 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: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: i32 = Constant<0>
try.c: 0x55bb12f02590: 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-32

Compiler output

Implementation: T:opt-32
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: 0x557d3da43170: v4i64 = X86ISD::VTRUNC 0x557d3da43040
try.c: 0x557d3da43040: v16i32 = vselect 0x557d3da4e430, 0x557d3d9dd1f0, 0x557d3da42f10
try.c: 0x557d3da4e430: v4i1 = X86ISD::PCMPGTM 0x557d3da35d40, 0x557d3da33860
try.c: 0x557d3da35d40: v4i64 = X86ISD::VBROADCAST 0x557d3d9f0a00
try.c: 0x557d3d9f0a00: i64,ch = load<LD8[%lsr.iv6971]> 0x557d3d947950, 0x557d3da28c60, undef:i64
try.c: 0x557d3da28c60: i64,ch = CopyFromReg 0x557d3d947950, Register:i64 %vreg50
try.c: 0x557d3da33ac0: i64 = Register %vreg50
try.c: 0x557d3d9f1ed0: i64 = undef
try.c: 0x557d3da33860: v4i64,ch = CopyFromReg 0x557d3d947950, Register:v4i64 %vreg13
try.c: 0x557d3da36590: v4i64 = Register %vreg13
try.c: 0x557d3d9dd1f0: v16i32 = X86ISD::VBROADCAST 0x557d3da35fa0
try.c: 0x557d3da35fa0: i32,ch = load<LD4[ConstantPool]> 0x557d3d947950, 0x557d3d9effe0, undef:i64
try.c: 0x557d3d9effe0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x557d3d9e1c10: i64 = TargetConstantPool<i32 1> 0
try.c: 0x557d3d9f1ed0: i64 = undef
try.c: 0x557d3da42f10: 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: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: i32 = Constant<0>
try.c: 0x557d3da42de0: 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-32

Compiler output

Implementation: T:opt-64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: hash.c:239:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:238:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:240:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:238:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:241:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:238:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: inline void F1024(u64 *h, const u64 *m) {
hash.c: ^
hash.c: static
hash.c: hash.c:242:3: warning: non-constant static local variable in inline function may be different in different files [-Wstatic-local-in-inline]
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:238:1: note: use 'static' to give inline function 'F1024' internal linkage
hash.c: ...

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

Compiler output

Implementation: T:opt-64
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: hash.c:242:14: warning: 'inP' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 inP[COLS1024] __attribute__((aligned(16)));
hash.c: ^~~
hash.c: hash.c:241:14: warning: 'outQ' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 outQ[COLS1024] __attribute__((aligned(16)));
hash.c: ^~~~
hash.c: hash.c:240:14: warning: 'z' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 z[COLS1024] __attribute__((aligned(16)));
hash.c: ^
hash.c: hash.c:239:14: warning: 'y' is static but declared in inline function 'F1024' which is not static
hash.c: static u64 y[COLS1024] __attribute__((aligned(16)));
hash.c: ^

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

Compiler output

Implementation: T:ref
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.c: fatal error: error in backend: Cannot select: 0x55e176db6ce0: v64i8 = X86ISD::VBROADCAST 0x55e176d2c3d0
hash.c: 0x55e176d2c3d0: i8,ch = CopyFromReg 0x55e176c8efd0, Register:i8 %vreg42
hash.c: 0x55e176d57920: i8 = Register %vreg42
hash.c: In function: AddRoundConstant
hash.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
hash.c: clang version 3.8.1-24 (tags/RELEASE_381/final)
hash.c: Target: x86_64-pc-linux-gnu
hash.c: Thread model: posix
hash.c: InstalledDir: /usr/bin
hash.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
hash.c: clang: note: diagnostic msg:
hash.c: ********************
hash.c:
hash.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
hash.c: Preprocessed source(s) and associated run script(s) are located at:
hash.c: clang: note: diagnostic msg: /tmp/hash-4de124.c
hash.c: clang: note: diagnostic msg: /tmp/hash-4de124.sh
hash.c: clang: note: diagnostic msg:
hash.c:
hash.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
hash.c: fatal error: error in backend: Cannot select: 0x559ff384fd10: v64i8 = X86ISD::VBROADCAST 0x559ff3801460
hash.c: 0x559ff3801460: i8,ch = CopyFromReg 0x559ff37560c0, Register:i8 %vreg42
hash.c: 0x559ff38ac790: i8 = Register %vreg42
hash.c: In function: AddRoundConstant
hash.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
hash.c: clang version 3.8.1-24 (tags/RELEASE_381/final)
hash.c: Target: x86_64-pc-linux-gnu
hash.c: Thread model: posix
hash.c: InstalledDir: /usr/bin
hash.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
hash.c: clang: note: diagnostic msg:
hash.c: ********************
hash.c:
hash.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
hash.c: Preprocessed source(s) and associated run script(s) are located at:
hash.c: clang: note: diagnostic msg: /tmp/hash-b8f17b.c
hash.c: clang: note: diagnostic msg: /tmp/hash-b8f17b.sh
hash.c: clang: note: diagnostic msg:
hash.c:
hash.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
hash.c: fatal error: error in backend: Cannot select: 0x55baa2a00090: v64i8 = X86ISD::VBROADCAST 0x55baa2a56730
hash.c: 0x55baa2a56730: i8,ch = CopyFromReg 0x55baa28e8050, Register:i8 %vreg42
hash.c: 0x55baa29dc570: i8 = Register %vreg42
hash.c: In function: AddRoundConstant
hash.c: clang: error: clang frontend command failed with exit code 70 (use -v to see invocation)
hash.c: clang version 3.8.1-24 (tags/RELEASE_381/final)
hash.c: Target: x86_64-pc-linux-gnu
hash.c: Thread model: posix
hash.c: InstalledDir: /usr/bin
hash.c: clang: note: diagnostic msg: PLEASE submit a bug report to http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and associated run script.
hash.c: clang: note: diagnostic msg:
hash.c: ********************
hash.c:
hash.c: PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
hash.c: Preprocessed source(s) and associated run script(s) are located at:
hash.c: clang: note: diagnostic msg: /tmp/hash-947f5f.c
hash.c: clang: note: diagnostic msg: /tmp/hash-947f5f.sh
hash.c: clang: note: diagnostic msg:
hash.c:
hash.c: ********************

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE T:ref