Implementation notes: amd64, speed2supercop, crypto_aead/aescopav1

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aescopav1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
61364834605 0 050565 768 928T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
62188411641 0 025605 768 928T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
63536837377 0 052878 808 856T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
75216415512 0 029070 808 856T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
8173089779 0 023492 760 928T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
83686833930 0 050462 808 872T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
83758033003 0 049326 808 872T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
106996810733 0 025127 800 920T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625
10861688819 0 021328 744 896T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070320240625

Compiler output


encrypt.c: encrypt.c:24:13: warning: unused function 'printblock' [-Wunused-function]
encrypt.c: static void printblock(const char* caption, const block_t buf)
encrypt.c:             ^
encrypt.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


encrypt.c: encrypt.c:24:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt.c:    24 | static void printblock(const char* caption, const block_t buf)
encrypt.c:       |             ^~~~~~~~~~
encrypt.c: In function 'rol',
encrypt.c:     inlined from 'mix' at encrypt.c:282:2:
encrypt.c: encrypt.c:264:36: warning: 'ab' may be used uninitialized [-Wmaybe-uninitialized]
encrypt.c:   264 |         unsigned char firstbit = in[0] >> 7;
encrypt.c:       |                                  ~~^~~
encrypt.c: encrypt.c: In function 'mix':
encrypt.c: encrypt.c:276:23: note: 'ab' declared here
encrypt.c:   276 |         unsigned char ab[16];
encrypt.c:       |                       ^~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


encrypt.c: encrypt.c:24:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt.c:    24 | static void printblock(const char* caption, const block_t buf)
encrypt.c:       |             ^~~~~~~~~~
encrypt.c: In function 'rol',
encrypt.c:     inlined from 'mix' at encrypt.c:282:2:
encrypt.c: encrypt.c:268:24: warning: writing 2 bytes into a region of size 0 [-Wstringop-overflow=]
encrypt.c:   268 |                 *out++ = (*in++ << 1) | bit;
encrypt.c:       |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c: In function 'mix':
encrypt.c: encrypt.c:276:23: note: at offset 16 into destination object 'ab' of size 16
encrypt.c:   276 |         unsigned char ab[16];
encrypt.c:       |                       ^~
encrypt.c: encrypt.c:276:23: note: at offset 4294967280 into destination object 'ab' of size 16
encrypt.c: encrypt.c:276:23: note: at offset 16 into destination object 'ab' of size 16
encrypt.c: In function 'rol',
encrypt.c:     inlined from 'mix' at encrypt.c:282:2:
encrypt.c: encrypt.c:268:24: warning: writing 2 bytes into a region of size 0 [-Wstringop-overflow=]
encrypt.c:   268 |                 *out++ = (*in++ << 1) | bit;
encrypt.c:       |                 ~~~~~~~^~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c: In function 'mix':
encrypt.c: encrypt.c:276:23: note: at offset 18 into destination object 'ab' of size 16
encrypt.c:   276 |         unsigned char ab[16];
encrypt.c:       |                       ^~
encrypt.c: encrypt.c:276:23: note: at offset 4294967282 into destination object 'ab' of size 16
encrypt.c: encrypt.c:276:23: note: at offset 18 into destination object 'ab' of size 16
encrypt.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


encrypt.c: encrypt.c:24:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt.c:    24 | static void printblock(const char* caption, const block_t buf)
encrypt.c:       |             ^~~~~~~~~~
encrypt.c: encrypt.c: In function 'mix':
encrypt.c: encrypt.c:282:9: warning: 'ab' may be used uninitialized [-Wmaybe-uninitialized]
encrypt.c:   282 |         rol(ab, ab, s);
encrypt.c:       |         ^~~~~~~~~~~~~~
encrypt.c: encrypt.c:262:6: note: by argument 2 of type 'const unsigned char *' to 'rol' declared here
encrypt.c:   262 | void rol(unsigned char* out, const unsigned char* in, unsigned int s)
encrypt.c:       |      ^~~
encrypt.c: encrypt.c:276:23: note: 'ab' declared here
encrypt.c:   276 |         unsigned char ab[16];
encrypt.c:       |                       ^~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


encrypt.c: encrypt.c:24:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt.c:    24 | static void printblock(const char* caption, const block_t buf)
encrypt.c:       |             ^~~~~~~~~~

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)