Implementation notes: amd64, cezanne, crypto_kem/hqcrmrs128

Computer: cezanne
Microarchitecture: amd64; Zen 3 (a50f00)
Architecture: amd64
CPU ID: AuthenticAMD-00a50f00-178bfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: hqcrmrs128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
77711556492 8 34580103564 876 36344T:avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
86870733750 8 3458079540 876 36344T:avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
113639333235 8 3458078276 876 36344T:avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625
125675526662 8 3458070596 868 36312T:avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024062820240625

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_11.0.1)
T:avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

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-11/lib/clang/11.0.1/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_11.0.1)

Compiler output


gf2x.c: gf2x.c: In function 'TOOM3Mult':
gf2x.c: gf2x.c:408:8: 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:53: note: while referencing 'U1'
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:8: 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:89: note: while referencing 'U2'
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:8: 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:71: note: while referencing 'V1'
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:8: 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:107: note: while referencing 'V2'
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:       |                                                                                                           ^~
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: 3, namely:
ImplementationCompiler
T:avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

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 (10.2.1_20210110)