Implementation notes: amd64, hydra5, crypto_aead/aesjambuv2

Computer: hydra5
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240625
Operation: crypto_aead
Primitive: aesjambuv2

Test failure


error 111
crypto_aead_decrypt returns nonzero

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)

Compiler output


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

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:aesniclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesniclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:aesniclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


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

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

Compiler output


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

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

Compiler output


encrypt_aesni.c: encrypt_aesni.c: In function 'jambu_dec_aut_msg_step':
encrypt_aesni.c: encrypt_aesni.c:228:22: warning: unused variable 'tmp1' [-Wunused-variable]
encrypt_aesni.c:   228 |         __m128i tmp, tmp1;
encrypt_aesni.c:       |                      ^~~~
encrypt_aesni.c: encrypt_aesni.c: In function 'crypto_aead_aesjambuv2_aesni_timingleaks_encrypt':
encrypt_aesni.c: encrypt_aesni.c:270:48: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt_aesni.c:   270 |         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt_aesni.c:       |                                                ^~~~~~~~~~~~~~~~~~~~~~
encrypt_aesni.c: encrypt_aesni.c:270:23: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt_aesni.c:   270 |         unsigned char partialblockplaintext[8],partialblockciphertext[8];
encrypt_aesni.c:       |                       ^~~~~~~~~~~~~~~~~~~~~
encrypt_aesni.c: encrypt_aesni.c:269:25: warning: unused variable 'j' [-Wunused-variable]
encrypt_aesni.c:   269 |         unsigned long i,j;
encrypt_aesni.c:       |                         ^
encrypt_aesni.c: encrypt_aesni.c: In function 'crypto_aead_aesjambuv2_aesni_timingleaks_decrypt':
encrypt_aesni.c: encrypt_aesni.c:346:23: warning: unused variable 'check' [-Wunused-variable]
encrypt_aesni.c:   346 |         unsigned char check = 0;
encrypt_aesni.c:       |                       ^~~~~
encrypt_aesni.c: encrypt_aesni.c:345:23: warning: unused variable 'tag' [-Wunused-variable]
encrypt_aesni.c:   345 |         unsigned char tag[8];
encrypt_aesni.c:       |                       ^~~
encrypt_aesni.c: encrypt_aesni.c:344:49: warning: unused variable 'partialblockciphertext' [-Wunused-variable]
encrypt_aesni.c:   344 |         unsigned char partialblockplaintext[16],partialblockciphertext[16];
encrypt_aesni.c:       |                                                 ^~~~~~~~~~~~~~~~~~~~~~
encrypt_aesni.c: encrypt_aesni.c:344:23: warning: unused variable 'partialblockplaintext' [-Wunused-variable]
encrypt_aesni.c: ...

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

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 (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_14.0.0)

Compiler output


encrypt.c: encrypt.c: In function 'crypto_aead_aesjambuv2_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:267:17: 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 (11.4.0)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (11.4.0)