Implementation notes: amd64, dali, crypto_aead/jambuaes128v2

Computer: dali
Microarchitecture: amd64; Zen (820f01)
Architecture: amd64
CPU ID: AuthenticAMD-00820f01-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: jambuaes128v2

Test failure


error 111
crypto_aead_decrypt returns nonzero

Number of similar (implementation,compiler) pairs: 17, namely:
ImplementationCompiler
T:aesniclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesniclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesniclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesniclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:aesnigcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesnigcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesnigcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:aesnigcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
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)
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)

Compiler output


encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:         __m128i tmp, tmp1;
encrypt.c:                      ^
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                                                ^
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:344:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                       ^
encrypt.c: encrypt.c:346:16: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:         unsigned char check = 0;
encrypt.c:                       ^
encrypt.c: encrypt.c:344:42: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                                                 ^
encrypt.c: encrypt.c:343:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:345:16: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:         __m128i tmp, tmp1;
encrypt.c:                      ^
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                                                ^
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:344:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                       ^
encrypt.c: encrypt.c:346:16: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:         unsigned char check = 0;
encrypt.c:                       ^
encrypt.c: encrypt.c:343:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:344:42: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                                                 ^
encrypt.c: encrypt.c:345:16: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:         __m128i tmp, tmp1;
encrypt.c:                      ^
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                                                ^
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:344:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                       ^
encrypt.c: encrypt.c:346:16: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:         unsigned char check = 0;
encrypt.c:                       ^
encrypt.c: encrypt.c:343:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:344:42: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                                                 ^
encrypt.c: encrypt.c:345:16: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:         __m128i tmp, tmp1;
encrypt.c:                      ^
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                                                ^
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:345:16: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c:         unsigned char tag[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:343:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:344:42: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                                                 ^
encrypt.c: encrypt.c:344:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:                       ^
encrypt.c: encrypt.c:346:16: warning: unused variable 'check' [-Wunused-variable]
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:         __m128i tmp, tmp1;
encrypt.c:                      ^
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                       ^
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:                                                ^
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:         unsigned long i,j;
encrypt.c:                         ^
encrypt.c: encrypt.c:280:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c:         K[1] = KEYEXP(K[0], 0x01);
encrypt.c:                ^
encrypt.c: encrypt.c:19:42: note: expanded from macro 'KEYEXP'
encrypt.c: #define KEYEXP(K, I) aes128_keyexpand(K, _mm_aeskeygenassist_si128(K, I))
encrypt.c:                                          ^
encrypt.c: /usr/lib/llvm-11/lib/clang/11.0.1/include/__wmmintrin_aes.h:136:12: note: expanded from macro '_mm_aeskeygenassist_si128'
encrypt.c:   (__m128i)__builtin_ia32_aeskeygenassist128((__v2di)(__m128i)(C), (int)(R))
encrypt.c:            ^
encrypt.c: encrypt.c:281:9: error: '__builtin_ia32_aeskeygenassist128' needs target feature aes
encrypt.c:         K[2] = KEYEXP(K[1], 0x02);
encrypt.c:                ^
encrypt.c: encrypt.c:19:42: note: expanded from macro 'KEYEXP'
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c: In function 'jambu_dec_aut_msg_step':
encrypt.c: encrypt.c:228:15: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt.c:   228 |  __m128i tmp, tmp1;
encrypt.c:       |               ^~~~
encrypt.c: encrypt.c: In function 'crypto_aead_jambuaes128v2_aesni_timingleaks_encrypt':
encrypt.c: encrypt.c:270:41: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:   270 |  unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:       |                                         ^~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:270:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c:   270 |  unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt.c:       |                ^~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:269:18: warning: unused variable 'j' [-Wunused-variable]
encrypt.c:   269 |  unsigned long i,j;
encrypt.c:       |                  ^
encrypt.c: encrypt.c: In function 'crypto_aead_jambuaes128v2_aesni_timingleaks_decrypt':
encrypt.c: encrypt.c:346:16: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   346 |  unsigned char check = 0;
encrypt.c:       |                ^~~~~
encrypt.c: encrypt.c:345:16: warning: unused variable 'tag' [-Wunused-variable]
encrypt.c:   345 |  unsigned char tag[8];
encrypt.c:       |                ^~~
encrypt.c: encrypt.c:344:42: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt.c:   344 |  unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt.c:       |                                          ^~~~~~~~~~~~~~~~~~~~~~
encrypt.c: encrypt.c:344:16: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt.c: ...

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

Compiler output


encrypt.c: encrypt.c:267:11: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:         uint8_t check = 0;
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_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: encrypt.c: In function 'crypto_aead_jambuaes128v2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:267:11: warning: unused variable 'check' [-Wunused-variable]
encrypt.c:   267 |   uint8_t check = 0;
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)