Implementation notes: amd64, renoir, crypto_aead/colm127v1

Computer: renoir
Microarchitecture: amd64; Zen 2 (860f01)
Architecture: amd64
CPU ID: AuthenticAMD-00860f01-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: colm127v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
18502914014 0 50030671 828 1560T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2151174508 0 48818524 836 1496T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
21530713845 0 48830606 844 1496T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
21601110186 0 48826630 844 1528T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2172359476 0 48825822 844 1528T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2205126392 0 50021343 828 1560T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2442654920 0 48819276 836 1496T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2738275182 0 50019766 820 1560T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3012534040 0 50017450 804 1560T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625

Checksum failure


7364d92c6fade8518705308c3ef01d720c57bd5d863280d8adca1ade9d06f7f7

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:aesni4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesni4gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesni4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesni4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:23:13: warning: unused function 'printblock' [-Wunused-function]
encrypt-colm127-optpar4.c: static void printblock(const char* caption, unsigned char* block, unsigned char nbytes, int reg)
encrypt-colm127-optpar4.c:             ^
encrypt-colm127-optpar4.c: 1 warning generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:aesni4clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesni4clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c:                 AES_ENCRYPT4(block1,block2,block3,block4, expkey);
encrypt-colm127-optpar4.c:                 ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:170:12: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:                 block1 = _mm_aesenc_si128 (block1,expkey[r]); \
encrypt-colm127-optpar4.c:                          ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:171:12: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:                 block2 = _mm_aesenc_si128 (block2,expkey[r]); \
encrypt-colm127-optpar4.c:                          ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:172:12: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:                 block3 = _mm_aesenc_si128 (block3,expkey[r]); \
encrypt-colm127-optpar4.c:                          ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:173:12: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:                 block4 = _mm_aesenc_si128 (block4,expkey[r]); \
encrypt-colm127-optpar4.c:                          ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:175:11: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:         block1 = _mm_aesenclast_si128 (block1,expkey[10]); \
encrypt-colm127-optpar4.c:                  ^
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:293:3: error: always_inline function '_mm_aesenclast_si128' requires target feature 'aes', but would be inlined into function 'mac' that is compiled without support for 'aes'
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:176:11: note: expanded from macro 'AES_ENCRYPT4'
encrypt-colm127-optpar4.c:         block2 = _mm_aesenclast_si128 (block2,expkey[10]); \
encrypt-colm127-optpar4.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:aesni4clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:23:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt-colm127-optpar4.c:    23 | static void printblock(const char* caption, unsigned char* block, unsigned char nbytes, int reg)
encrypt-colm127-optpar4.c:       |             ^~~~~~~~~~
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c: In function 'crypto_aead_colm127v1_aesni4_timingleaks_decrypt':
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:633:10: warning: 'Ltag' may be used uninitialized in this function [-Wmaybe-uninitialized]
encrypt-colm127-optpar4.c:   633 |    block = AES_encrypt(Wtag, expkey) ^ Ltag;
encrypt-colm127-optpar4.c:       |    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

Compiler output


encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:23:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt-colm127-optpar4.c:    23 | static void printblock(const char* caption, unsigned char* block, unsigned char nbytes, int reg)
encrypt-colm127-optpar4.c:       |             ^~~~~~~~~~

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

Compiler output


encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:23:13: warning: 'printblock' defined but not used [-Wunused-function]
encrypt-colm127-optpar4.c:    23 | static void printblock(const char* caption, unsigned char* block, unsigned char nbytes, int reg)
encrypt-colm127-optpar4.c:       |             ^~~~~~~~~~
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c: In function 'crypto_aead_colm127v1_aesni4_timingleaks_decrypt':
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:633:10: warning: 'Ltag' may be used uninitialized in this function [-Wmaybe-uninitialized]
encrypt-colm127-optpar4.c:   633 |    block = AES_encrypt(Wtag, expkey) ^ Ltag;
encrypt-colm127-optpar4.c:       |    ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
encrypt-colm127-optpar4.c: encrypt-colm127-optpar4.c:633:12: warning: 'Wtag' may be used uninitialized in this function [-Wmaybe-uninitialized]
encrypt-colm127-optpar4.c:   633 |    block = AES_encrypt(Wtag, expkey) ^ Ltag;
encrypt-colm127-optpar4.c:       |            ^~~~~~~~~~~~~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:aesni4gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesni4gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


encrypt.c: In file included from encrypt.c:10:
encrypt.c: ./module.h:112:6: warning: unused variable 'i' [-Wunused-variable]
encrypt.c:         int i;
encrypt.c:             ^
encrypt.c: encrypt.c:20:5: warning: unused variable 'Is_complete' [-Wunused-variable]
encrypt.c:         u8 Is_complete = 1, Is_Final=0, ozs[16];
encrypt.c:            ^
encrypt.c: encrypt.c:144:33: warning: unused variable 'blen' [-Wunused-variable]
encrypt.c:         int i; u8 zeroes[16], ozs[16], blen = 16, Is_Final = 0, Is_complete =1;
encrypt.c:                                        ^
encrypt.c: encrypt.c:144:58: warning: unused variable 'Is_complete' [-Wunused-variable]
encrypt.c:         int i; u8 zeroes[16], ozs[16], blen = 16, Is_Final = 0, Is_complete =1;
encrypt.c:                                                                 ^
encrypt.c: In file included from encrypt.c:10:
encrypt.c: ./module.h:33:13: warning: unused function 'mult_inv2' [-Wunused-function]
encrypt.c: static void mult_inv2(block b, block s) {int i; block d; unsigned char temp = s[15]&1;
encrypt.c:             ^
encrypt.c: 5 warnings 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_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


encrypt.c: In file included from encrypt.c:10:
encrypt.c: module.h: In function 'process_block':
encrypt.c: module.h:112:6: warning: unused variable 'i' [-Wunused-variable]
encrypt.c:   112 |  int i;
encrypt.c:       |      ^
encrypt.c: encrypt.c: In function 'process_AD':
encrypt.c: encrypt.c:20:5: warning: unused variable 'Is_complete' [-Wunused-variable]
encrypt.c:    20 |  u8 Is_complete = 1, Is_Final=0, ozs[16];
encrypt.c:       |     ^~~~~~~~~~~
encrypt.c: encrypt.c: In function 'crypto_aead_colm127v1_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:144:58: warning: unused variable 'Is_complete' [-Wunused-variable]
encrypt.c:   144 |  int i; u8 zeroes[16], ozs[16], blen = 16, Is_Final = 0, Is_complete =1;
encrypt.c:       |                                                          ^~~~~~~~~~~
encrypt.c: encrypt.c:144:33: warning: unused variable 'blen' [-Wunused-variable]
encrypt.c:   144 |  int i; u8 zeroes[16], ozs[16], blen = 16, Is_Final = 0, Is_complete =1;
encrypt.c:       |                                 ^~~~
encrypt.c: encrypt.c:144:24: warning: variable 'ozs' set but not used [-Wunused-but-set-variable]
encrypt.c:   144 |  int i; u8 zeroes[16], ozs[16], blen = 16, Is_Final = 0, Is_complete =1;
encrypt.c:       |                        ^~~
encrypt.c: In file included from encrypt.c:10:
encrypt.c: At top level:
encrypt.c: module.h:33:13: warning: 'mult_inv2' defined but not used [-Wunused-function]
encrypt.c:    33 | static void mult_inv2(block b, block s) {int i; block d; unsigned char temp = s[15]&1;
encrypt.c:       |             ^~~~~~~~~

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)