Implementation notes: amd64, cherry, crypto_kem/lotus128

Computer: cherry
Microarchitecture: amd64; Silvermont (406c4)
Architecture: amd64
CPU ID: GenuineIntel-000406c4-bfebfbff
SUPERCOP version: 20240716
Operation: crypto_kem
Primitive: lotus128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
332250037969 0 856891 876 1720T:optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
339043044159 0 864739 876 1720T:optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
361874822314 0 841163 876 1720T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
366925247765 0 867907 876 1720T:optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
388817928753 0 848819 876 1720T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
393194026570 0 847067 876 1720T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
747218311517 0 828905 868 1720T:optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
980006212768 0 831744 860 1784T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
1034774511160 0 829113 868 1720T:optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
104970478206 0 825529 868 1720T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
106986849458 0 828352 860 1784T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
107536148679 0 826545 868 1720T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
1142617210262 0 828744 860 1784T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
118559119423 0 826488 852 1752T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
119835578331 0 826768 860 1784T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716
134421307330 0 824344 852 1752T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024080120240716

Test failure


error 111

Number of similar (implementation,compiler) pairs: 2, namely:
ImplementationCompiler
T:optgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:158:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[0] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:158:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:159:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[1] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:159:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:160:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[2] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:160:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:161:12: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:     c[3] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:            ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:161:12: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:164:11: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:       a = _mm256_set1_epi16(A[j]);
lwe-arithmetics_avx2.c:           ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:164:11: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:165:14: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c:       b[0] = _mm256_loadu_si256((__m256i*)(p));
lwe-arithmetics_avx2.c:              ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:165:14: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:166:14: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'submat_negmul' that is compiled without support for 'avx'
lwe-arithmetics_avx2.c: ...

Number of similar (implementation,compiler) pairs: 5, namely:
ImplementationCompiler
T:avx2clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx2clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx2clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx2clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c: In function 'submat_negmul':
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:158:10: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
lwe-arithmetics_avx2.c:   158 |     c[0] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:       |     ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1235:1: error: inlining failed in call to 'always_inline' '_mm256_setzero_si256': target specific option mismatch
lwe-arithmetics_avx2.c:  1235 | _mm256_setzero_si256 (void)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:161:12: note: called from here
lwe-arithmetics_avx2.c:   161 |     c[3] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:       |            ^~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1235:1: error: inlining failed in call to 'always_inline' '_mm256_setzero_si256': target specific option mismatch
lwe-arithmetics_avx2.c:  1235 | _mm256_setzero_si256 (void)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:160:12: note: called from here
lwe-arithmetics_avx2.c:   160 |     c[2] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c:       |            ^~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:51,
lwe-arithmetics_avx2.c:                  from lwe-arithmetics_avx2.c:10:
lwe-arithmetics_avx2.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avxintrin.h:1235:1: error: inlining failed in call to 'always_inline' '_mm256_setzero_si256': target specific option mismatch
lwe-arithmetics_avx2.c:  1235 | _mm256_setzero_si256 (void)
lwe-arithmetics_avx2.c:       | ^~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: ...

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

Namespace violations


cpa-pke_opt.o lotus_cpa_pke_dec_packed T
cpa-pke_opt.o lotus_cpa_pke_enc_packed T
cpa-pke_opt.o lotus_cpa_pke_keypair T
crypto.o crypto_symenc_keysetup T
crypto.o crypto_symenc_keystream T
crypto.o crypto_symenc_keystream_13block T
crypto.o crypto_symenc_keystream_32block T
kem.o util_cmp_const T
kem.o xor_ss T
lwe-arithmetics_opt.o add_sigma T
lwe-arithmetics_opt.o distribute_2x2_nl T
lwe-arithmetics_opt.o distribute_2x2_nn T
lwe-arithmetics_opt.o merge_2x2_nl T
lwe-arithmetics_opt.o reconstruct T
lwe-arithmetics_opt.o redc T
lwe-arithmetics_opt.o submat_add_nl T
lwe-arithmetics_opt.o submat_add_nn T
lwe-arithmetics_opt.o submat_negmul T
lwe-arithmetics_opt.o submat_negsubmul T
lwe-arithmetics_opt.o submat_sub_nl T
lwe-arithmetics_opt.o submat_sub_nn T
lwe-arithmetics_opt.o submat_submul T
lwe-arithmetics_opt.o submul T
pack.o pack_128dg T
pack.o pack_128elems T
pack.o pack_64elems T
pack.o pack_ct T
pack.o pack_pk T
pack.o pack_sk T
pack.o unpack_128dg T
pack.o unpack_128elems T
pack.o unpack_64elems T
pack.o unpack_ct T
pack.o unpack_pk T
pack.o unpack_sk T
sampler.o _LOTUS_KYDG_SAMPLER_L1_pMat R
sampler.o _LOTUS_KYDG_SAMPLER_L1_weight R
sampler.o _LOTUS_KYDG_SAMPLER_LUT R
sampler.o csprng_sample_bit T
sampler.o csprng_sample_byte T
sampler.o extend_sign_with_random_bit T
sampler.o sample_discrete_gaussian T
sampler.o sample_uniform T
sampler.o sample_unit_discrete_gaussian T
sampler.o sampler_init T
sampler.o sampler_set_seed T
sampler.o scan_bit_and_output T

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:optclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:optgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:optgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:optgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Namespace violations


cpa-pke.o lotus_cpa_pke_dec T
cpa-pke.o lotus_cpa_pke_enc T
cpa-pke.o lotus_cpa_pke_keypair T
crypto.o crypto_symenc_keysetup T
crypto.o crypto_symenc_keystream T
kem.o util_cmp_const T
kem.o xor_ss T
lwe-arithmetics.o add_sigma T
lwe-arithmetics.o addmul T
lwe-arithmetics.o addmul_concat T
lwe-arithmetics.o reconstruct T
lwe-arithmetics.o redc T
lwe-arithmetics.o submul T
pack.o pack_128dg T
pack.o pack_128elems T
pack.o pack_64elems T
pack.o pack_ct T
pack.o pack_pk T
pack.o pack_sk T
pack.o unpack_128dg T
pack.o unpack_128elems T
pack.o unpack_64elems T
pack.o unpack_ct T
pack.o unpack_pk T
pack.o unpack_sk T
sampler.o _LOTUS_KYDG_SAMPLER_L1_pMat R
sampler.o _LOTUS_KYDG_SAMPLER_L1_weight R
sampler.o _LOTUS_KYDG_SAMPLER_LUT R
sampler.o csprng_sample_bit T
sampler.o csprng_sample_byte T
sampler.o extend_sign_with_random_bit T
sampler.o sample_discrete_gaussian T
sampler.o sample_uniform T
sampler.o sample_unit_discrete_gaussian T
sampler.o sampler_init T
sampler.o sampler_set_seed T
sampler.o scan_bit_and_output T

Number of similar (implementation,compiler) pairs: 8, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)