Implementation notes: amd64, cel02, crypto_hash/sarmal512

Computer: cel02
Architecture: amd64
CPU ID: GenuineIntel-00050657-bfebfbff
SUPERCOP version: 20201130
Operation: crypto_hash
Primitive: sarmal512
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1821223733 16640 12833376 17448 904T:asm64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
1917824998 16640 12835940 17464 904T:asm64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2018226242 16640 12840437 17472 936T:asm64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2022624755 16640 12835380 17464 904T:asm64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2066627259 16384 038922 17192 736T:opt64clang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2182428226 16640 12838852 17464 904T:opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2313029610 16640 12843805 17472 936T:opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2393027276 16384 037092 17184 736T:opt64clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020121120201130
2562826601 16640 12836256 17448 904T:opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130
2677028342 16640 12839292 17464 904T:opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020121120201130

Compiler output

Implementation: T:asm64
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: ...

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

Compiler output

Implementation: T:asm64
Security model: timingleaks
Compiler: clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
sarmal.c: sarmal.c:945:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1323:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: sarmal.c:1120:14: error: invalid instruction mnemonic 'addq'
sarmal.c: "push rax\n\t"
sarmal.c: ^
sarmal.c: <inline asm>:1075:2: note: instantiated into assembly here
sarmal.c: addq [rdx], 1024
sarmal.c: ^~~~
sarmal.c: 2 errors generated.

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

Compiler output

Implementation: T:opt64
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: 0x55cdecf720e0: v4i64 = X86ISD::VTRUNC 0x55cdecf71fb0
try.c: 0x55cdecf71fb0: v16i32 = vselect 0x55cdecf6eac0, 0x55cdecf24650, 0x55cdecf71e80
try.c: 0x55cdecf6eac0: v4i1 = X86ISD::PCMPGTM 0x55cdecf6a670, 0x55cdecf66200
try.c: 0x55cdecf6a670: v4i64 = X86ISD::VBROADCAST 0x55cdecf11c10
try.c: 0x55cdecf11c10: i64,ch = load<LD8[%lsr.iv6971]> 0x55cdece7b950, 0x55cdecefaa40, undef:i64
try.c: 0x55cdecefaa40: i64,ch = CopyFromReg 0x55cdece7b950, Register:i64 %vreg50
try.c: 0x55cdecf66460: i64 = Register %vreg50
try.c: 0x55cdecf130e0: i64 = undef
try.c: 0x55cdecf66200: v4i64,ch = CopyFromReg 0x55cdece7b950, Register:v4i64 %vreg13
try.c: 0x55cdecf6aec0: v4i64 = Register %vreg13
try.c: 0x55cdecf24650: v16i32 = X86ISD::VBROADCAST 0x55cdecf6a8d0
try.c: 0x55cdecf6a8d0: i32,ch = load<LD4[ConstantPool]> 0x55cdece7b950, 0x55cdecf111f0, undef:i64
try.c: 0x55cdecf111f0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x55cdecf59450: i64 = TargetConstantPool<i32 1> 0
try.c: 0x55cdecf130e0: i64 = undef
try.c: 0x55cdecf71e80: 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: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: i32 = Constant<0>
try.c: 0x55cdecf71d50: 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:opt64

Compiler output

Implementation: T:opt64
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: 0x56068c078b80: v4i64 = X86ISD::VTRUNC 0x56068c078a50
try.c: 0x56068c078a50: v16i32 = vselect 0x56068c07e7e0, 0x56068bff3d30, 0x56068c078920
try.c: 0x56068c07e7e0: v4i1 = X86ISD::PCMPGTM 0x56068c05f390, 0x56068c05b160
try.c: 0x56068c05f390: v4i64 = X86ISD::VBROADCAST 0x56068bff41f0
try.c: 0x56068bff41f0: i64,ch = load<LD8[%lsr.iv6971]> 0x56068bf59a30, 0x56068bffc110, undef:i64
try.c: 0x56068bffc110: i64,ch = CopyFromReg 0x56068bf59a30, Register:i64 %vreg50
try.c: 0x56068c05b3c0: i64 = Register %vreg50
try.c: 0x56068bffd740: i64 = undef
try.c: 0x56068c05b160: v4i64,ch = CopyFromReg 0x56068bf59a30, Register:v4i64 %vreg13
try.c: 0x56068c05fbe0: v4i64 = Register %vreg13
try.c: 0x56068bff3d30: v16i32 = X86ISD::VBROADCAST 0x56068c05f5f0
try.c: 0x56068c05f5f0: i32,ch = load<LD4[ConstantPool]> 0x56068bf59a30, 0x56068bffa6e0, undef:i64
try.c: 0x56068bffa6e0: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x56068bffe0c0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x56068bffd740: i64 = undef
try.c: 0x56068c078920: 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: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: i32 = Constant<0>
try.c: 0x56068c0787f0: 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:opt64

Compiler output

Implementation: T:opt64
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: 0x556ad9fc4240: v4i64 = X86ISD::VTRUNC 0x556ad9fc4110
try.c: 0x556ad9fc4110: v16i32 = vselect 0x556ad9fb0630, 0x556ad9f64110, 0x556ad9fc3fe0
try.c: 0x556ad9fb0630: v4i1 = X86ISD::PCMPGTM 0x556ad9fa9a70, 0x556ad9fa5600
try.c: 0x556ad9fa9a70: v4i64 = X86ISD::VBROADCAST 0x556ad9f4ad40
try.c: 0x556ad9f4ad40: i64,ch = load<LD8[%lsr.iv6971]> 0x556ad9eba950, 0x556ad9f67b90, undef:i64
try.c: 0x556ad9f67b90: i64,ch = CopyFromReg 0x556ad9eba950, Register:i64 %vreg50
try.c: 0x556ad9fa5860: i64 = Register %vreg50
try.c: 0x556ad9f62780: i64 = undef
try.c: 0x556ad9fa5600: v4i64,ch = CopyFromReg 0x556ad9eba950, Register:v4i64 %vreg13
try.c: 0x556ad9faa2c0: v4i64 = Register %vreg13
try.c: 0x556ad9f64110: v16i32 = X86ISD::VBROADCAST 0x556ad9fa9cd0
try.c: 0x556ad9fa9cd0: i32,ch = load<LD4[ConstantPool]> 0x556ad9eba950, 0x556ad9f4a320, undef:i64
try.c: 0x556ad9f4a320: i64 = X86ISD::WrapperRIP TargetConstantPool:i64<i32 1> 0
try.c: 0x556ad9f8a3f0: i64 = TargetConstantPool<i32 1> 0
try.c: 0x556ad9f62780: i64 = undef
try.c: 0x556ad9fc3fe0: 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: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: i32 = Constant<0>
try.c: 0x556ad9fc3eb0: 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:opt64