Implementation notes: amd64, speed2supercop, crypto_kem/hqc256

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: hqc256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
495788040551 221064 5470894086 221928 56320T:avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
513300426010 221064 5470877494 221928 56320T:avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
528082824995 221064 5470876134 221928 56320T:avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625
576877620330 221064 5470870382 221920 56288T:avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071120240625

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_16.0.6_(27+b1))
T:avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


rng.c: rng.c:126: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_16.0.6_(27+b1))
T:avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
T:avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


bch.c: bch.c:291:7: error: always_inline function '_mm256_set1_epi32' requires target feature 'avx', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx'
bch.c:                 y = _mm256_set1_epi32(*aux);
bch.c:                     ^
bch.c: bch.c:291:7: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:294:7: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx2'
bch.c:                 y = _mm256_shuffle_epi8(y, mask_one);
bch.c:                     ^
bch.c: bch.c:294:7: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:296:15: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx2'
bch.c:                 z[i >> 2] = _mm256_and_si256(y, mask_two);
bch.c:                             ^
bch.c: bch.c:296:15: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:306:17: error: always_inline function '_mm256_set1_epi64x' requires target feature 'avx', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx'
bch.c:                         tmp_repeat = _mm256_set1_epi64x((long long)(tmp_array[i]!=0));
bch.c:                                      ^
bch.c: bch.c:306:17: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:307:8: error: always_inline function '_mm256_cmpeq_epi64' requires target feature 'avx2', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx2'
bch.c:                         L = _mm256_cmpeq_epi64(tmp_repeat,un_256);
bch.c:                             ^
bch.c: bch.c:307:8: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:308:17: error: always_inline function '_mm256_lddqu_si256' requires target feature 'avx', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx'
bch.c:                         tmp_repeat = _mm256_lddqu_si256((__m256i *)(alpha_tmp + i * (PARAM_DELTA << 1)));
bch.c:                                      ^
bch.c: bch.c:308:17: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bch.c: bch.c:309:8: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'compute_syndromes' that is compiled without support for 'avx2'
bch.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:avxclang -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:       |                                                                                                                  ^~
rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:126:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   126 |     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 (13.3.0)
T:avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
T:avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Compiler output


rng.c: rng.c: In function 'AES256_ECB':
rng.c: rng.c:126:9: warning: variable 'ciphertext_len' set but not used [-Wunused-but-set-variable]
rng.c:   126 |     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 (13.3.0)