Implementation notes: amd64, speed2supercop, crypto_kem/hqcrmrs256
Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240808
Operation: crypto_kem
Primitive: hqcrmrs256
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
4752540 | 75089 8 52500 | 129406 840 54112 | T:avx | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240812 | 20240808 |
5443484 | 33800 8 52500 | 85638 840 54112 | T:avx | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240812 | 20240808 |
Test failure
error 111
Number of similar (implementation,compiler) pairs: 4, namely:
Implementation | Compiler |
T:avx | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
Test failure
error 111
crypto_kem_dec returns nonzero
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
T:avx | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:avx | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.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:
Implementation | Compiler |
T:avx | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
T:avx | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
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-16/lib/clang/16/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:
Implementation | Compiler |
T:avx | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
Compiler output
gf2x.c: gf2x.c: In function 'TOOM3Mult':
gf2x.c: gf2x.c:406:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 406 | U1_64 = ((uint64_t *) U1) - 1;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:60: note: at offset -8 into object 'U1' of size 1024
gf2x.c: 355 | 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:407:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 407 | U2_64 = ((uint64_t *) U2) - 2;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:96: note: at offset -16 into object 'U2' of size 1024
gf2x.c: 355 | 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 | V1_64 = ((uint64_t *) V1) - 1;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:78: note: at offset -8 into object 'V1' of size 1024
gf2x.c: 355 | 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:410:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 410 | V2_64 = ((uint64_t *) V2) - 2;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:114: note: at offset -16 into object 'V2' of size 1024
gf2x.c: 355 | 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:
Implementation | Compiler |
T:avx | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:avx | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.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:
Implementation | Compiler |
T:avx | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
Compiler output
gf2x.c: gf2x.c: In function 'TOOM3Mult':
gf2x.c: gf2x.c:406:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 406 | U1_64 = ((uint64_t *) U1) - 1;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:60: note: at offset -8 into object 'U1' of size 1024
gf2x.c: 355 | 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:407:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 407 | U2_64 = ((uint64_t *) U2) - 2;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:96: note: at offset -16 into object 'U2' of size 1024
gf2x.c: 355 | 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 | V1_64 = ((uint64_t *) V1) - 1;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:78: note: at offset -8 into object 'V1' of size 1024
gf2x.c: 355 | 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:410:15: warning: array subscript 0 is outside array bounds of '__m256i[32]' [-Warray-bounds=]
gf2x.c: 410 | V2_64 = ((uint64_t *) V2) - 2;
gf2x.c: | ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
gf2x.c: gf2x.c:355:114: note: at offset -16 into object 'V2' of size 1024
gf2x.c: 355 | 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:
Implementation | Compiler |
T:avx | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
Namespace violations
code.o code_decode T
code.o code_encode T
fft.o fft T
fft.o fft_retrieve_error_poly T
gf.o gf_exp T
gf.o gf_generate T
gf.o gf_inverse T
gf.o gf_log T
gf.o gf_mod T
gf.o gf_mul T
gf.o gf_reduce T
gf.o gf_square T
gf2x.o TOOM3Mult T
gf2x.o TOOM3RecMult T
gf2x.o a1_times_a2 B
gf2x.o bit64 B
gf2x.o bloc64 B
gf2x.o o256 D
gf2x.o tmp_reduce B
gf2x.o vect_mul T
hqc.o hqc_pke_decrypt T
hqc.o hqc_pke_encrypt T
hqc.o hqc_pke_keygen T
parsing.o hqc_ciphertext_from_string T
parsing.o hqc_ciphertext_to_string T
parsing.o hqc_public_key_from_string T
parsing.o hqc_public_key_to_string T
parsing.o hqc_secret_key_from_string T
parsing.o hqc_secret_key_to_string T
reed_muller.o bit_vector R
reed_muller.o count_vector R
reed_muller.o encode T
reed_muller.o expand_and_sum T
reed_muller.o find_peaks T
reed_muller.o hadamard T
reed_muller.o reed_muller_decode T
reed_muller.o reed_muller_encode T
reed_solomon.o compute_generator_poly T
reed_solomon.o reed_solomon_decode T
reed_solomon.o reed_solomon_encode T
rng.o AES256_CTR_DRBG_Update T
rng.o AES256_ECB T
rng.o DRBG_ctx B
rng.o handleErrors T
rng.o seedexpander T
rng.o seedexpander_init T
vector.o vect_add T
vector.o vect_compare T
vector.o vect_print T
vector.o vect_print_sparse T
vector.o vect_resize T
vector.o vect_set_random T
vector.o vect_set_random_fixed_weight T
vector.o vect_set_random_from_randombytes T
Number of similar (implementation,compiler) pairs: 2, namely:
Implementation | Compiler |
T:avx | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
T:avx | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |