Implementation notes: riscv64, hifiveunleashedriscv, crypto_hash/keccakc448

Computer: hifiveunleashedriscv
Architecture: riscv64
CPU ID: unknown CPU ID
SUPERCOP version: 20191221
Operation: crypto_hash
Primitive: keccakc448
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
6268458616 0 064456 720 728opt64lcu24gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6456158544 0 064658 736 728opt64lcu24gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6705316962 0 022802 720 728opt64lcu6gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6718616930 0 023044 736 728opt64lcu6gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
695682392 0 08304 720 728simplegcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
702684074 0 09986 720 728inplacegcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
7128318090 0 023922 720 728opt64u6gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
7189918028 0 024134 736 728opt64u6gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
719634016 0 010202 736 728inplacegcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
736112404 0 08590 736 728simplegcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
8429572660 0 080262 736 728opt64lcu24gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
8440072422 0 078636 736 728opt64lcu24gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
8686020690 0 026904 736 728opt64lcu6gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
8706620724 0 028326 736 728opt64lcu6gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
9649722616 0 028822 736 728opt64u6gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
9792822546 0 030140 736 728opt64u6gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
1019755152 0 011438 736 728inplacegcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
1020929802 0 017492 736 728inplacegcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
1072282980 0 09266 736 728simplegcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
1086395562 0 013252 736 728simplegcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
17449425808 0 031644 720 728opt32bi-s2lcu4gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
1763604944 0 012606 736 728compactgcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
17765415230 0 021066 720 728opt32bi-rvku2gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
18351126666 0 032776 736 728opt32bi-s2lcu4gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
18711225476 0 431430 736 262872opt32biT-s2lcu4gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
19137315328 0 021438 736 728opt32bi-rvku2gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
20188326374 0 432602 752 262872opt32biT-s2lcu4gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
25800937768 0 045374 736 728opt32bi-s2lcu4gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
25872337352 0 043562 736 728opt32bi-s2lcu4gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
27261638640 0 446372 752 262872opt32biT-s2lcu4gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
28076237108 0 443430 752 262872opt32biT-s2lcu4gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
30161222648 0 030254 736 728opt32bi-rvku2gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
30614822372 0 028582 736 728opt32bi-rvku2gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
3565321738 0 08000 736 728compactgcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
3729521540 0 07428 720 728compactgcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
4666731640 0 07802 736 728compactgcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6517211220 192 07110 912 728compact8gcc_-march=rv64gc_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6684531376 192 07648 928 728compact8gcc_-march=rv64gc_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
6845551228 192 07392 928 728compact8gcc_-march=rv64gc_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221
7147823398 192 011060 928 728compact8gcc_-march=rv64gc_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2019123020191221

Compiler output

Implementation: inplace32bi
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-inplace32BI.c: Keccak-inplace32BI.c: In function 'crypto_hash_keccakc448_inplace32bi':
Keccak-inplace32BI.c: Keccak-inplace32BI.c:73:6: error: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-inplace32BI.c: 73 | #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-inplace32BI.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace32bi
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace32bi
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace32bi
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace32bi

Compiler output

Implementation: simple32bi
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-simple32BI.c: Keccak-simple32BI.c: In function 'crypto_hash_keccakc448_simple32bi':
Keccak-simple32BI.c: Keccak-simple32BI.c:73:6: error: #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-simple32BI.c: 73 | #error "The output size must be a multiple of the lane size in this simple implementation."
Keccak-simple32BI.c: | ^~~~~

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE simple32bi
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE simple32bi
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE simple32bi
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE simple32bi

Namespace violations

Implementation: compact
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-compact.o Final T
Keccak-compact.o Init T
Keccak-compact.o KeccakF T
Keccak-compact.o KeccakF_Mod5 R
Keccak-compact.o KeccakF_PiLane R
Keccak-compact.o KeccakF_RotationConstants R
Keccak-compact.o KeccakF_RoundConstants R
Keccak-compact.o Update T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE compact
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE compact

Namespace violations

Implementation: compact8
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-compact8.o Final T
Keccak-compact8.o Init T
Keccak-compact8.o KeccakF T
Keccak-compact8.o Update T
Keccak-compact8.o rotate64_1bit_left T
Keccak-compact8.o rotate64left T
Keccak-compact8.o xorBytes T
Keccak-compact8.o xorLanes T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact8
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE compact8
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE compact8
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE compact8

Namespace violations

Implementation: inplace
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-inplace.o KeccakF T
Keccak-inplace.o KeccakF1600RoundConstants R

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE inplace

Namespace violations

Implementation: opt32bi-rvku2
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakF-1600-opt32.o KeccakAbsorb T
KeccakF-1600-opt32.o KeccakAbsorb1152bits T
KeccakF-1600-opt32.o KeccakExtract T
KeccakF-1600-opt32.o KeccakInitialize T
KeccakF-1600-opt32.o KeccakInitializeState T
KeccakF-1600-opt32.o KeccakPermutation T
KeccakF-1600-opt32.o KeccakPermutationOnWords T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring1152bits T
KeccakF-1600-opt32.o fromInterleaving T
KeccakF-1600-opt32.o setInterleavedWordsInto8bytes T
KeccakSponge.o Absorb T
KeccakSponge.o AbsorbQueue T
KeccakSponge.o InitSponge T
KeccakSponge.o PadAndSwitchToSqueezingPhase T
KeccakSponge.o Squeeze T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-rvku2
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-rvku2
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-rvku2
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-rvku2

Namespace violations

Implementation: opt32bi-s2lcu4
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakF-1600-opt32.o KeccakAbsorb T
KeccakF-1600-opt32.o KeccakAbsorb1152bits T
KeccakF-1600-opt32.o KeccakExtract T
KeccakF-1600-opt32.o KeccakF1600RoundConstants_int2_0 R
KeccakF-1600-opt32.o KeccakF1600RoundConstants_int2_1 R
KeccakF-1600-opt32.o KeccakInitialize T
KeccakF-1600-opt32.o KeccakInitializeState T
KeccakF-1600-opt32.o KeccakPermutation T
KeccakF-1600-opt32.o KeccakPermutationOnWords T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring1152bits T
KeccakF-1600-opt32.o fromInterleaving T
KeccakF-1600-opt32.o setInterleavedWordsInto8bytes T
KeccakSponge.o Absorb T
KeccakSponge.o AbsorbQueue T
KeccakSponge.o InitSponge T
KeccakSponge.o PadAndSwitchToSqueezingPhase T
KeccakSponge.o Squeeze T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-s2lcu4
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-s2lcu4
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-s2lcu4
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32bi-s2lcu4

Namespace violations

Implementation: opt32biT-s2lcu4
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakF-1600-opt32.o KeccakAbsorb T
KeccakF-1600-opt32.o KeccakAbsorb1152bits T
KeccakF-1600-opt32.o KeccakExtract T
KeccakF-1600-opt32.o KeccakF1600RoundConstants_int2_0 R
KeccakF-1600-opt32.o KeccakF1600RoundConstants_int2_1 R
KeccakF-1600-opt32.o KeccakInitialize T
KeccakF-1600-opt32.o KeccakInitializeState T
KeccakF-1600-opt32.o KeccakPermutation T
KeccakF-1600-opt32.o KeccakPermutationOnWords T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring T
KeccakF-1600-opt32.o KeccakPermutationOnWordsAfterXoring1152bits T
KeccakF-1600-opt32.o buildInterleaveTables T
KeccakF-1600-opt32.o deinterleaveTable C
KeccakF-1600-opt32.o interleaveTable C
KeccakF-1600-opt32.o interleaveTablesBuilt B
KeccakF-1600-opt32.o setInterleavedWordsInto8bytes T
KeccakF-1600-opt32.o xor8bytesIntoInterleavedWords T
KeccakSponge.o Absorb T
KeccakSponge.o AbsorbQueue T
KeccakSponge.o InitSponge T
KeccakSponge.o PadAndSwitchToSqueezingPhase T
KeccakSponge.o Squeeze T

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32biT-s2lcu4
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32biT-s2lcu4
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32biT-s2lcu4
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt32biT-s2lcu4

Namespace violations

Implementation: opt64lcu24
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
KeccakF-1600-opt64.o KeccakAbsorb T
KeccakF-1600-opt64.o KeccakAbsorb1152bits T
KeccakF-1600-opt64.o KeccakExtract T
KeccakF-1600-opt64.o KeccakF1600RoundConstants R
KeccakF-1600-opt64.o KeccakInitialize T
KeccakF-1600-opt64.o KeccakInitializeState T
KeccakF-1600-opt64.o KeccakPermutation T
KeccakF-1600-opt64.o KeccakPermutationOnWords T
KeccakF-1600-opt64.o KeccakPermutationOnWordsAfterXoring T
KeccakF-1600-opt64.o KeccakPermutationOnWordsAfterXoring1152bits T
KeccakF-1600-opt64.o fromBytesToWord T
KeccakF-1600-opt64.o fromWordToBytes T
KeccakSponge.o Absorb T
KeccakSponge.o AbsorbQueue T
KeccakSponge.o InitSponge T
KeccakSponge.o PadAndSwitchToSqueezingPhase T
KeccakSponge.o Squeeze T

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu24
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu24
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu24
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu24
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu6
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu6
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu6
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64lcu6
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64u6
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64u6
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64u6
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt64u6

Namespace violations

Implementation: simple
Security model: unknown
Compiler: gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
Keccak-simple.o KeccakF T
Keccak-simple.o KeccakF_RoundConstants R

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=rv64gc -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE simple
gcc -march=rv64gc -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE simple
gcc -march=rv64gc -O -fomit-frame-pointer -fwrapv -fPIC -fPIE simple
gcc -march=rv64gc -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE simple