Implementation notes: amd64, gcc68, crypto_encrypt/lotus256

Computer: gcc68
Architecture: amd64
CPU ID: AuthenticAMD-00800f82-178bfbff
SUPERCOP version: 20191221
Operation: crypto_encrypt
Primitive: lotus256
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
81472035347 0 856457 904 1600avx2clang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
81478439312 0 860481 904 1600avx2clang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
81680035347 0 856457 904 1600avx2clang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
93856011522 0 830423 896 1600avx2clang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
244265642377 0 864201 904 1600optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
244614442377 0 864201 904 1600optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
252556850481 0 872497 904 1600optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
254771257024 0 879057 904 1600optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
438790411986 0 830967 896 1600optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2020010120191221
713382410252 0 828858 912 1632avx2gcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010120191221
1162822410070 0 828698 912 1632optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2020010120191221

Test failure

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111
crypto_encrypt_open does not handle c=t overlap

Number of similar (compiler,implementation) pairs: 12, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE opt
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE ref
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE ref
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE ref

Test failure

Implementation: avx2
Security model: unknown
Compiler: gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE
error 111

Number of similar (compiler,implementation) pairs: 3, namely:
CompilerImplementations
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2 opt ref

Compiler output

Implementation: avx2
Security model: unknown
Compiler: clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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: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: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: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:162: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[4] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c: ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:163: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[5] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c: ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:164: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[6] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c: ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:165: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[7] = _mm256_setzero_si256();
lwe-arithmetics_avx2.c: ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:168: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: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2

Namespace violations

Implementation: avx2
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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_decrypt T
crypto.o crypto_symenc_encrypt 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
encrypt.o util_cmp_const T
lwe-arithmetics_avx2.o add_sigma T
lwe-arithmetics_avx2.o distribute_2x2_nl T
lwe-arithmetics_avx2.o distribute_2x2_nn T
lwe-arithmetics_avx2.o merge_2x2_nl T
lwe-arithmetics_avx2.o reconstruct T
lwe-arithmetics_avx2.o redc T
lwe-arithmetics_avx2.o submat_add_nl T
lwe-arithmetics_avx2.o submat_add_nn T
lwe-arithmetics_avx2.o submat_negmul T
lwe-arithmetics_avx2.o submat_negsubmul T
lwe-arithmetics_avx2.o submat_sub_nl T
lwe-arithmetics_avx2.o submat_sub_nn T
lwe-arithmetics_avx2.o submat_submul T
lwe-arithmetics_avx2.o submul T
pack_avx2.o pack_128dg T
pack_avx2.o pack_128elems T
pack_avx2.o pack_64elems T
pack_avx2.o pack_ct T
pack_avx2.o pack_pk T
pack_avx2.o pack_sk T
pack_avx2.o unpack_128dg T
pack_avx2.o unpack_128elems T
pack_avx2.o unpack_64elems T
pack_avx2.o unpack_ct T
pack_avx2.o unpack_pk T
pack_avx2.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 (compiler,implementation) pairs: 5, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE avx2

Namespace violations

Implementation: opt
Security model: unknown
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
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_decrypt T
crypto.o crypto_symenc_encrypt 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
encrypt.o util_cmp_const 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 (compiler,implementation) pairs: 6, namely:
CompilerImplementations
clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE opt
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE opt
clang -march=native -O -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE opt
clang -march=native -Os -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE opt
clang -mcpu=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE opt
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE opt