Implementation notes: amd64, speed2supercop, crypto_hash/asconhashv12

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240107
Operation: crypto_hash
Primitive: asconhashv12
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
338486186 0 016557 752 800opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
339446186 0 018421 752 800opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
339646770 0 019037 752 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
341406103 0 015000 728 768opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
347406827 0 016732 744 800opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
357046783 0 016684 744 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
364926804 0 017189 752 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
38100830 0 011189 752 800opt64_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
38148830 0 013069 752 800opt64_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
38224713 0 09592 728 768opt64_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
392961264 0 011148 744 800opt64_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
421887666 0 019901 752 800opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
422407666 0 018037 752 800opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
427807629 0 016520 728 768opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
447888533 0 018428 744 800opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
45076867 0 011229 752 800opt32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
45080867 0 013109 752 800opt32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
47852775 0 09664 728 768opt32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
485841326 0 011204 744 800opt32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
51456780 0 09656 728 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
761726304 0 016180 744 800bi32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
778685405 0 014272 728 768bi32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
813166548 0 018781 752 800bi32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
813686543 0 016901 752 800bi32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
814043417 0 013364 744 800bi32_lowreggcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
829681711 0 011612 744 800bi32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
837441390 0 010280 728 768bi32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
844202410 0 011344 728 768bi32_lowreggcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
880723272 0 015557 752 800bi32_lowreggcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
881523272 0 013677 752 800bi32_lowreggcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
909521616 0 011973 752 800bi32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
909721616 0 013853 752 800bi32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
4060803551 0 013517 752 800bi8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
4061763556 0 015397 752 800bi8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
4539684753 0 014268 744 800bi8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
4541444026 0 012536 728 768bi8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
6573723417 0 013813 752 800opt8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
6580163231 0 013589 752 800opt8_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
7782364036 0 013900 744 800opt8_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
7817444139 0 014052 744 800opt8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
8566883631 0 012544 728 768opt8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
8572603659 0 012528 728 768opt8_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107
8986725145 0 017389 752 800opt8_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024011320240107

Compiler output

Implementation: T:asm_esp32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
ascon.S: ascon.S:1:10: fatal error: xtensa/coreasm.h: No such file or directory
ascon.S: 1 | #include <xtensa/coreasm.h>
ascon.S: | ^~~~~~~~~~~~~~~~~~
ascon.S: compilation terminated.

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

Compiler output

Implementation: avr
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
permutations.S: permutations.S:29:10: fatal error: avr/io.h: No such file or directory
permutations.S: 29 | #include "avr/io.h"
permutations.S: | ^~~~~~~~~~
permutations.S: compilation terminated.

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

Compiler output

Implementation: avr
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from round.h:8,
hash.c: from permutations.h:11,
hash.c: from hash.c:4:
hash.c: In function 'ABSORB',
hash.c: inlined from 'ascon_absorb' at hash.c:59:3,
hash.c: inlined from 'crypto_hash_asconhashv12_avr_constbranchindex' at hash.c:84:3:
hash.c: word.h:124:10: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 124 | *s-- ^= *d++;
hash.c: | ^~
hash.c: hash.c: In function 'crypto_hash_asconhashv12_avr_constbranchindex':
hash.c: hash.c:82:17: note: at offset -8 into destination object 's' of size 40
hash.c: 82 | ascon_state_t s;
hash.c: | ^
hash.c: In function 'ABSORB',
hash.c: inlined from 'ascon_absorb' at hash.c:59:3,
hash.c: inlined from 'crypto_hash_asconhashv12_avr_constbranchindex' at hash.c:84:3:
hash.c: word.h:124:10: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hash.c: 124 | *s-- ^= *d++;
hash.c: | ^~
hash.c: hash.c: In function 'crypto_hash_asconhashv12_avr_constbranchindex':
hash.c: hash.c:82:17: note: at offset [-4294967281, -1] into destination object 's' of size 40
hash.c: 82 | ascon_state_t s;
hash.c: | ^
hash.c: hash.c:82:17: note: at offset [-4294967274, -34] into destination object 's' of size 40
hash.c: hash.c:82:17: note: at offset [-4294967274, -34] into destination object 's' of size 40
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avr

Compiler output

Implementation: T:esp32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: /tmp/cczSaGlI.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/cczSaGlI.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:esp32

Compiler output

Implementation: T:esp32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: /tmp/ccB0hFpp.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/ccB0hFpp.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:esp32

Compiler output

Implementation: T:esp32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: /tmp/ccfE4Oba.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/ccfE4Oba.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:esp32

Compiler output

Implementation: T:esp32
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE
try.c: /usr/bin/ld: /tmp/ccUjwK6b.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/ccUjwK6b.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashv12_esp32_timingleaks'
try.c: collect2: error: ld returned 1 exit status

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:esp32

Compiler output

Implementation: opt8
Security model: constbranchindex
Compiler: gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE
hash.c: In file included from round.h:8,
hash.c: from permutations.h:11,
hash.c: from hash.c:4:
hash.c: In function 'ABSORB',
hash.c: inlined from 'ascon_absorb' at hash.c:59:3,
hash.c: inlined from 'crypto_hash_asconhashv12_opt8_constbranchindex' at hash.c:84:3:
hash.c: word.h:124:10: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
hash.c: 124 | *s-- ^= *d++;
hash.c: | ^~
hash.c: hash.c: In function 'crypto_hash_asconhashv12_opt8_constbranchindex':
hash.c: hash.c:82:17: note: at offset -8 into destination object 's' of size 40
hash.c: 82 | ascon_state_t s;
hash.c: | ^
hash.c: In function 'ABSORB',
hash.c: inlined from 'ascon_absorb' at hash.c:59:3,
hash.c: inlined from 'crypto_hash_asconhashv12_opt8_constbranchindex' at hash.c:84:3:
hash.c: word.h:124:10: warning: writing 1 byte into a region of size 0 [-Wstringop-overflow=]
hash.c: 124 | *s-- ^= *d++;
hash.c: | ^~
hash.c: hash.c: In function 'crypto_hash_asconhashv12_opt8_constbranchindex':
hash.c: hash.c:82:17: note: at offset [-4294967281, -1] into destination object 's' of size 40
hash.c: 82 | ascon_state_t s;
hash.c: | ^
hash.c: hash.c:82:17: note: at offset [-4294967274, -34] into destination object 's' of size 40
hash.c: hash.c:82:17: note: at offset [-4294967274, -34] into destination object 's' of size 40
hash.c: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt8