Implementation notes: amd64, cel02, crypto_hash/whirlpool

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: whirlpool
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
10079021339 0 032357 824 776T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
10908023003 0 037165 824 808T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11366820670 0 030312 800 776T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
11564021102 0 031797 824 776T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
12560822414 0 032220 792 736T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
13933221553 0 033202 800 736T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:cryptopp
Security model: timingleaks
Compiler: clang++ -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
hash.cpp: hash.cpp:1:10: fatal error: 'cryptopp/whrlpool.h' file not found
hash.cpp: #include <cryptopp/whrlpool.h>
hash.cpp: ^
hash.cpp: 1 error generated.

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

Compiler output

Implementation: T:cryptopp
Security model: timingleaks
Compiler: g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.cpp: hash.cpp:1:31: fatal error: cryptopp/whrlpool.h: No such file or directory
hash.cpp: #include <cryptopp/whrlpool.h>
hash.cpp: ^
hash.cpp: compilation terminated.

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

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: 0x5562793d4a20: v4i64 = X86ISD::VTRUNC 0x5562793d48f0
try.c: 0x5562793d48f0: v16i32 = vselect 0x5562793cf3f0, 0x556279360d60, 0x5562793d47c0
try.c: 0x5562793cf3f0: v4i1 = X86ISD::PCMPGTM 0x5562793b7bf0, 0x5562793b3780
try.c: 0x5562793b7bf0: v4i64 = X86ISD::VBROADCAST 0x55627935df00
try.c: 0x55627935df00: i64,ch = load<LD8[%lsr.iv6971]> 0x5562792c8950, 0x55627939cdc0, undef:i64
try.c: 0x55627939cdc0: i64,ch = CopyFromReg 0x5562792c8950, Register:i64 %vreg50
try.c: 0x5562793b39e0: i64 = Register %vreg50
try.c: 0x55627935f3d0: i64 = undef
try.c: 0x5562793b3780: v4i64,ch = CopyFromReg 0x5562792c8950, Register:v4i64 %vreg13
try.c: 0x5562793b8440: v4i64 = Register %vreg13
try.c: 0x556279360d60: v16i32 = X86ISD::VBROADCAST 0x5562793b7e50
try.c: 0x5562793b7e50: i32,ch = load<LD4[ConstantPool]> 0x5562792c8950, 0x55627935c2a0, undef:i64
try.c: 0x55627935c2a0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5562793af730: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55627935f3d0: i64 = undef
try.c: 0x5562793d47c0: 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: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: i32 = Constant<0>
try.c: 0x5562793d4690: 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: 0x5581644c4c70: v4i64 = X86ISD::VTRUNC 0x5581644c4b40
try.c: 0x5581644c4b40: v16i32 = vselect 0x5581644d41f0, 0x558164453eb0, 0x5581644c4a10
try.c: 0x5581644d41f0: v4i1 = X86ISD::PCMPGTM 0x5581644bbdf0, 0x5581644b8990
try.c: 0x5581644bbdf0: v4i64 = X86ISD::VBROADCAST 0x558164454370
try.c: 0x558164454370: i64,ch = load<LD8[%lsr.iv6971]> 0x5581643b5a30, 0x55816445b0d0, undef:i64
try.c: 0x55816445b0d0: i64,ch = CopyFromReg 0x5581643b5a30, Register:i64 %vreg50
try.c: 0x5581644b8bf0: i64 = Register %vreg50
try.c: 0x5581644500f0: i64 = undef
try.c: 0x5581644b8990: v4i64,ch = CopyFromReg 0x5581643b5a30, Register:v4i64 %vreg13
try.c: 0x5581644bc640: v4i64 = Register %vreg13
try.c: 0x558164453eb0: v16i32 = X86ISD::VBROADCAST 0x5581644bc050
try.c: 0x5581644bc050: i32,ch = load<LD4[ConstantPool]> 0x5581643b5a30, 0x558164457a60, undef:i64
try.c: 0x558164457a60: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x558164450a70: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5581644500f0: i64 = undef
try.c: 0x5581644c4a10: 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: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: i32 = Constant<0>
try.c: 0x5581644c48e0: 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: 0x5610c004b210: v4i64 = X86ISD::VTRUNC 0x5610c004b0e0
try.c: 0x5610c004b0e0: v16i32 = vselect 0x5610c0037d00, 0x5610bffeb010, 0x5610c004afb0
try.c: 0x5610c0037d00: v4i1 = X86ISD::PCMPGTM 0x5610c0030890, 0x5610c002c420
try.c: 0x5610c0030890: v4i64 = X86ISD::VBROADCAST 0x5610bffd1a20
try.c: 0x5610bffd1a20: i64,ch = load<LD8[%lsr.iv6971]> 0x5610bff41940, 0x5610c001b1c0, undef:i64
try.c: 0x5610c001b1c0: i64,ch = CopyFromReg 0x5610bff41940, Register:i64 %vreg50
try.c: 0x5610c002c680: i64 = Register %vreg50
try.c: 0x5610bffe9680: i64 = undef
try.c: 0x5610c002c420: v4i64,ch = CopyFromReg 0x5610bff41940, Register:v4i64 %vreg13
try.c: 0x5610c00310e0: v4i64 = Register %vreg13
try.c: 0x5610bffeb010: v16i32 = X86ISD::VBROADCAST 0x5610c0030af0
try.c: 0x5610c0030af0: i32,ch = load<LD4[ConstantPool]> 0x5610bff41940, 0x5610bffd1000, undef:i64
try.c: 0x5610bffd1000: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x5610c00198f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x5610bffe9680: i64 = undef
try.c: 0x5610c004afb0: 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: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: i32 = Constant<0>
try.c: 0x5610c004ae80: 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