Implementation notes: amd64, hertz, crypto_hash/sha3384

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: sha3384
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
13835680 0 071820 836 968oncore64bitsclang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
13838782 0 071565 804 968oncore64bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
13856614 0 070124 796 936oncore64bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
13873958 0 073805 804 1032oncore64bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
143024601 0 078418 844 968oncore64bitsclang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
143034601 0 078546 844 968oncore64bitsclang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
15622245 0 015334 900 968opensslclang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
15650311 0 014775 876 968opensslgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
15654245 0 015206 900 968opensslclang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
15659297 0 011250 852 936opensslgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
15665245 0 012415 892 968opensslclang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
15670311 0 012759 876 936opensslgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2006328578 0 043203 844 968kcp/optimized1600AVX512clang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2008628067 0 042571 844 968kcp/optimized1600AVX512clang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2041827331 0 039068 836 968kcp/optimized1600AVX512clang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
2184124000 0 034344 780 936kcp/optimized1600AVX512gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2192026092 0 039941 804 1032kcp/optimized1600AVX512gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
2195825054 0 036837 804 968kcp/optimized1600AVX512gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
303994805 0 031160 812 1032oncore32bitsgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
308372986 0 029870 852 968oncore32bitsclang-17_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
308753374 0 030382 852 968oncore32bitsclang-17_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
314951902 0 026216 812 968oncore32bitsgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217
329901472 0 025607 844 968oncore32bitsclang-17_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023121920231217
333682052 0 024751 788 936oncore32bitsgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023121920231217

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: constbranchindex
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keccak.s: keccak.s:1:1: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:2:1: error: unexpected token at start of statement
keccak.s: @ Implementation by the Keccak, Keyak and Ketje Teams, namely, Guido Bertoni,
keccak.s: ^
keccak.s: keccak.s:3:1: error: unexpected token at start of statement
keccak.s: @ Joan Daemen, Michaƫl Peeters, Gilles Van Assche and Ronny Van Keer, hereby
keccak.s: keccak.s:4:1: error: unexpected token at start of statement
keccak.s: @ denoted as "the implementer".
keccak.s: ^
keccak.s: keccak.s:5:1: error: unexpected token at start of statement
keccak.s: @
keccak.s: ^
keccak.s: keccak.s:6:1: error: unexpected token at start of statement
keccak.s: @ For more information, feedback or questions, please refer to our websites:
keccak.s: ^
keccak.s: keccak.s:7:1: error: unexpected token at start of statement
keccak.s: @ http://keccak.noekeon.org/
keccak.s: ^
keccak.s: keccak.s:8:1: error: unexpected token at start of statement
keccak.s: @ http://keyak.noekeon.org/
keccak.s: ^
keccak.s: keccak.s:9:1: error: unexpected token at start of statement
keccak.s: @ http://ketje.noekeon.org/
keccak.s: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv7A
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv7A
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv7A

Compiler output

Implementation: kcp/optimized1600ARMv7A
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keccak.s: keccak.s: Assembler messages:
keccak.s: keccak.s:1: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:2: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:3: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:4: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:5: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:6: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:7: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:8: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:9: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:10: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:11: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:12: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:13: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:14: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:16: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:17: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:18: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:21: Error: unknown pseudo-op: `.syntax'
keccak.s: keccak.s:22: Error: unknown pseudo-op: `.fpu'
keccak.s: keccak.s:23: Error: unknown pseudo-op: `.arm'
keccak.s: keccak.s:26: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:27: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:29: Error: junk at end of line, first unrecognized character is `@'
keccak.s: keccak.s:56: Error: junk at end of line, first unrecognized character is `@'
keccak.s: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv7A

Compiler output

Implementation: kcp/optimized1600ARMv8A
Security model: constbranchindex
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
keccak.s: keccak.s:258:20: error: unknown token in expression
keccak.s: movi v0.2d, #0
keccak.s: ^
keccak.s: keccak.s:259:20: error: unknown token in expression
keccak.s: movi v1.2d, #0
keccak.s: ^
keccak.s: keccak.s:260:20: error: unknown token in expression
keccak.s: movi v2.2d, #0
keccak.s: ^
keccak.s: keccak.s:261:20: error: unknown token in expression
keccak.s: movi v3.2d, #0
keccak.s: ^
keccak.s: keccak.s:262:15: error: unknown token in expression
keccak.s: st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64 // Clear 8lanes=64 bytes at a time
keccak.s: ^
keccak.s: keccak.s:263:15: error: unknown token in expression
keccak.s: st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
keccak.s: ^
keccak.s: keccak.s:264:15: error: unknown token in expression
keccak.s: st4 { v0.2d, v1.2d, v2.2d, v3.2d }, [x0], #64
keccak.s: ^
keccak.s: keccak.s:265:15: error: unknown token in expression
keccak.s: st1 { v0.d }[0], [x0], #8
keccak.s: ^
keccak.s: keccak.s:276:20: error: expected ']' in brackets expression
keccak.s: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv8A
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv8A
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600ARMv8A

Compiler output

Implementation: kcp/optimized1600ARMv8A
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
keccak.s: keccak.s: Assembler messages:
keccak.s: keccak.s:258: Error: no such instruction: `movi v0.2d,'
keccak.s: keccak.s:259: Error: no such instruction: `movi v1.2d,'
keccak.s: keccak.s:260: Error: no such instruction: `movi v2.2d,'
keccak.s: keccak.s:261: Error: no such instruction: `movi v3.2d,'
keccak.s: keccak.s:262: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d },[x0],'
keccak.s: keccak.s:263: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d },[x0],'
keccak.s: keccak.s:264: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d },[x0],'
keccak.s: keccak.s:265: Error: no such instruction: `st1 { v0.d }[0],[x0],'
keccak.s: keccak.s:276: Error: no such instruction: `ldrb w3,[x0,x2]'
keccak.s: keccak.s:277: Error: no such instruction: `eor w3,w3,w1'
keccak.s: keccak.s:278: Error: missing ']'
keccak.s: keccak.s:278: Error: too many memory references for `str'
keccak.s: keccak.s:289: Error: too many memory references for `add'
keccak.s: keccak.s:290: Error: expecting operand after ','; got nothing
keccak.s: keccak.s:291: Error: no such instruction: `b.cc KeccakP1600_AddBytes_Exit//length 0,move along'
keccak.s: keccak.s:293: Error: expecting operand after ','; got nothing
keccak.s: keccak.s:294: Error: no such instruction: `b.cc KeccakP1600_AddBytes_Lanes//Jump if length is negative'
keccak.s: keccak.s:295: Error: no such instruction: `ld4 { v0.2d,v1.2d,v2.2d,v3.2d },[x0]'
keccak.s: keccak.s:296: Error: no such instruction: `ld4 { v4.2d,v5.2d,v6.2d,v7.2d },[x1],'
keccak.s: keccak.s:297: Error: no such instruction: `eor v0.16b,v0.16b,v4.16b'
keccak.s: keccak.s:298: Error: no such instruction: `eor v1.16b,v1.16b,v5.16b'
keccak.s: keccak.s:299: Error: no such instruction: `eor v2.16b,v2.16b,v6.16b'
keccak.s: keccak.s:300: Error: no such instruction: `eor v3.16b,v3.16b,v7.16b'
keccak.s: keccak.s:301: Error: no such instruction: `st4 { v0.2d,v1.2d,v2.2d,v3.2d },[x0],'
keccak.s: ...

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600ARMv8A

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: constbranchindex
Compiler: clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_sha3384.a(SHA3-384.o): in function `crypto_hash_sha3384_kcp_optimized1600AVX2_constbranchindex':
try.c: SHA3-384.c:(.text+0x...): undefined reference to `KeccakWidth1600_Sponge'
try.c: clang-17: error: linker command failed with exit code 1 (use -v to see invocation)

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
clang-17 -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600AVX2
clang-17 -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600AVX2
clang-17 -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE kcp/optimized1600AVX2

Compiler output

Implementation: kcp/optimized1600AVX2
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: libcrypto_hash_sha3384.a(SHA3-384.o): in function `crypto_hash_sha3384_kcp_optimized1600AVX2_constbranchindex':
try.c: SHA3-384.c:(.text+0x...): undefined reference to `KeccakWidth1600_Sponge'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE kcp/optimized1600AVX2