Implementation notes: amd64, speed2supercop, crypto_hash/asconhashav12

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240425
Operation: crypto_hash
Primitive: asconhashav12
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
226764890 0 015261 752 800opt64gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
227164890 0 017125 752 800opt64gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
228524835 0 013736 728 768opt64gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
229245396 0 017637 752 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
241125519 0 015420 744 800opt64gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
244765256 0 015156 744 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
253205413 0 015789 752 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
26168713 0 09592 728 768opt64_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
26808830 0 011189 752 800opt64_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
26812830 0 013069 752 800opt64_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
274161264 0 011148 744 800opt64_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
282966082 0 016453 752 800opt32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
283606082 0 018317 752 800opt32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
288486065 0 014968 728 768opt32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
306726887 0 016780 744 800opt32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
30744867 0 011229 752 800opt32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
30760867 0 013109 752 800opt32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
32776775 0 09664 728 768opt32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
335641326 0 011204 744 800opt32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
35368876 0 09760 728 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
536649364 0 019244 744 800bi32gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
547648229 0 017104 728 768bi32gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
569123423 0 013364 744 800bi32_lowreggcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5730410088 0 020453 752 800bi32gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5738810093 0 022333 752 800bi32gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
580602416 0 011344 728 768bi32_lowreggcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
582281390 0 010280 728 768bi32_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
588001711 0 011612 744 800bi32_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
607843272 0 013677 752 800bi32_lowreggcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
608963272 0 015557 752 800bi32_lowreggcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
630681616 0 011973 752 800bi32_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
630961616 0 013853 752 800bi32_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
2704083556 0 015397 752 800bi8gcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
2730643551 0 013517 752 800bi8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3055084026 0 012536 728 768bi8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
3058524753 0 014268 744 800bi8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
4411163417 0 013813 752 800opt8gcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
4417963231 0 013589 752 800opt8_lowsizegcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5220044036 0 013900 744 800opt8_lowsizegcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5242764139 0 014052 744 800opt8gcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5748843631 0 012544 728 768opt8gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5750083659 0 012528 728 768opt8_lowsizegcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425
5940045145 0 017389 752 800opt8_lowsizegcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2024042620240425

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_asconhashav12_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_asconhashav12_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_asconhashav12_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_asconhashav12_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/cc7MR2XN.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/cc7MR2XN.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_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/cc0KLlQJ.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/cc0KLlQJ.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_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/ccU9bjTw.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/ccU9bjTw.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_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/cccjKKqN.o: in function `test':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_esp32_timingleaks'
try.c: /usr/bin/ld: /tmp/cccjKKqN.o: in function `doit':
try.c: try-small.c:(.text+0x...): undefined reference to `crypto_hash_asconhashav12_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_asconhashav12_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_asconhashav12_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_asconhashav12_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_asconhashav12_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