Implementation notes: amd64, comet, crypto_kem/hqcrmrs128

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: hqcrmrs128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
161387258404 8 34580115765 868 36352T:avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
199342134233 8 3458088877 868 36352T:avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625

Test failure


error 111

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

Test failure


error 111
crypto_kem_dec returns nonzero

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Compiler output


rng.c: rng.c:129:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:     int ciphertext_len;
rng.c:         ^
rng.c: 1 warning generated.

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

Compiler output


gf.c: gf.c:116:16: error: '__builtin_ia32_pclmulqdq128' needs target feature pclmul
gf.c:         __m128i vab = _mm_clmulepi64_si128(va, vb, 0);
gf.c:                       ^
gf.c: /usr/lib/llvm-14/lib/clang/14.0.6/include/__wmmintrin_pclmul.h:45:13: note: expanded from macro '_mm_clmulepi64_si128'
gf.c:   ((__m128i)__builtin_ia32_pclmulqdq128((__v2di)(__m128i)(X), \
gf.c:             ^
gf.c: 1 error generated.

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

Compiler output


gf2x.c: gf2x.c: In function 'TOOM3Mult':
gf2x.c: gf2x.c:408:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   408 |         U1_64 = ((uint64_t *) U1) - 1;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:60: note: at offset -8 into object 'U1' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                            ^~
gf2x.c: gf2x.c:409:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   409 |         U2_64 = ((uint64_t *) U2) - 2;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:96: note: at offset -16 into object 'U2' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                                                ^~
gf2x.c: gf2x.c:411:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   411 |         V1_64 = ((uint64_t *) V1) - 1;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:78: note: at offset -8 into object 'V1' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                              ^~
gf2x.c: gf2x.c:412:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   412 |         V2_64 = ((uint64_t *) V2) - 2;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:114: note: at offset -16 into object 'V2' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                                                                  ^~
reed_muller.c: reed_muller.c: In function 'find_peaks':
reed_muller.c: reed_muller.c:339:45: warning: 'tmp' is used uninitialized [-Wuninitialized]
reed_muller.c:   339 |                 result |= message_mask & ptr[i];
reed_muller.c:       |                                          ~~~^~~
reed_muller.c: reed_muller.c:300:17: note: 'tmp' was declared here
reed_muller.c:   300 |         __m256i tmp = (__m256i) {0ULL, 0ULL, 0ULL, 0ULL};
reed_muller.c:       |                 ^~~
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:129:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   129 |     int ciphertext_len;
rng.c:       |         ^~~~~~~~~~~~~~

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)
T:avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (12.2.0)

Compiler output


rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:129:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   129 |     int ciphertext_len;
rng.c:       |         ^~~~~~~~~~~~~~

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

Compiler output


gf2x.c: gf2x.c: In function 'TOOM3Mult':
gf2x.c: gf2x.c:408:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   408 |         U1_64 = ((uint64_t *) U1) - 1;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:60: note: at offset -8 into object 'U1' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                            ^~
gf2x.c: gf2x.c:409:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   409 |         U2_64 = ((uint64_t *) U2) - 2;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:96: note: at offset -16 into object 'U2' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                                                ^~
gf2x.c: gf2x.c:411:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   411 |         V1_64 = ((uint64_t *) V1) - 1;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:78: note: at offset -8 into object 'V1' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                              ^~
gf2x.c: gf2x.c:412:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds]
gf2x.c:   412 |         V2_64 = ((uint64_t *) V2) - 2;
gf2x.c:       |         ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:357:114: note: at offset -16 into object 'V2' of size 1024
gf2x.c:   357 |         static __m256i U0[T_TM3_3W_256], V0[T_TM3_3W_256], U1[T_TM3_3W_256], V1[T_TM3_3W_256], U2[T_TM3_3W_256], V2[T_TM3_3W_256];
gf2x.c:       |                                                                                                                  ^~
reed_muller.c: reed_muller.c: In function 'find_peaks':
reed_muller.c: reed_muller.c:339:45: warning: 'tmp' is used uninitialized [-Wuninitialized]
reed_muller.c:   339 |                 result |= message_mask & ptr[i];
reed_muller.c:       |                                          ~~~^~~
reed_muller.c: reed_muller.c:300:17: note: 'tmp' declared here
reed_muller.c:   300 |         __m256i tmp = (__m256i) {0ULL, 0ULL, 0ULL, 0ULL};
reed_muller.c:       |                 ^~~
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:129:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   129 |     int ciphertext_len;
rng.c:       |         ^~~~~~~~~~~~~~

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