Implementation notes: amd64, jasper3, crypto_aead/colm127v1

Computer: jasper3
Microarchitecture: amd64; Tremont (906c0)
Architecture: amd64
CPU ID: GenuineIntel-000906c0-20-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: colm127v1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
21788013921 0 50030031 828 1560T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
23307610216 0 48828174 844 1496T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
24039313845 0 48830574 844 1496T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2428404465 0 48818340 836 1496T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2581209556 0 48825246 844 1496T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2601506466 0 50021391 828 1560T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2792575070 0 50019606 820 1560T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
2829744888 0 48819340 836 1496T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024062620240625
3103134031 0 50017386 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)