Implementation notes: amd64, h8bobcat, crypto_kem/lac128

Computer: h8bobcat
Microarchitecture: amd64; Bobcat (500f10)
Architecture: amd64
CPU ID: AuthenticAMD-00500f20-178bfbff
SUPERCOP version: 20240107
Operation: crypto_kem
Primitive: lac128
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
208121329037 39104 66445660 39984 2248T:optgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
211083918857 39080 62034348 39976 2152T:optclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
220113620256 39104 66435548 39984 2248T:optgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
222628334472 39080 62050894 39984 2152T:optclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
229537137134 39080 62053790 39984 2152T:optclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
260876222554 39080 62038396 39976 2152T:optclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
261307516808 39080 62031774 39968 2152T:optclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
277905416560 39104 66431100 39976 2216T:optgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
833599426374 0 6042590 896 1576T:refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
861500926993 0 6043406 896 1576T:refclang_-mcpu=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
885543521769 0 6037388 888 1576T:refclang_-march=native_-O2_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
895674715980 0 6030742 880 1576T:refclang_-march=native_-Os_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
1242284217218 0 6032492 888 1576T:refclang_-march=native_-O_-fomit-frame-pointer_-fwrapv_-Qunused-arguments_-fPIC_-fPIE2023122520231212
1317052519828 0 6035428 872 1640T:refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
1430471019123 0 6034204 872 1640T:refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
1460344228088 0 6044516 872 1640T:refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212
1547909615557 0 6029900 864 1608T:refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv_-fPIC_-fPIE2023122520231212

Checksum failure

Implementation: T:opt
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
3de6b7a3a0a5a07ba36ec9e2518a4a08cd769b175879a11c56f12b19cfac1e6d
Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:opt

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: clang -march=native -O2 -fomit-frame-pointer -fwrapv -Qunused-arguments -fPIC -fPIE
bin-lwe.c: bin-lwe.c:91:10: error: always_inline function '_mm256_set_epi16' requires target feature 'avx', but would be inlined into function 'poly_mul' that is compiled without support for 'avx'
bin-lwe.c: tmp_one=_mm256_set_epi16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:91:10: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:103:9: error: always_inline function '_mm256_setzero_si256' requires target feature 'avx', but would be inlined into function 'poly_mul' that is compiled without support for 'avx'
bin-lwe.c: tmp2 =_mm256_setzero_si256();
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:103:9: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:106:11: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'poly_mul' that is compiled without support for 'avx'
bin-lwe.c: tmp0 = _mm256_loadu_si256((__m256i *)(v_p+j));
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:106:11: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:107:11: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'poly_mul' that is compiled without support for 'avx'
bin-lwe.c: tmp1 = _mm256_loadu_si256((__m256i *)(s+j));
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:107:11: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:108:11: error: always_inline function '_mm256_maddubs_epi16' requires target feature 'avx2', but would be inlined into function 'poly_mul' that is compiled without support for 'avx2'
bin-lwe.c: tmp0 = _mm256_maddubs_epi16(tmp0, tmp1);
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:108:11: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:109:11: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'poly_mul' that is compiled without support for 'avx2'
bin-lwe.c: tmp2 = _mm256_add_epi16(tmp2, tmp0);
bin-lwe.c: ^
bin-lwe.c: bin-lwe.c:109:11: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
bin-lwe.c: bin-lwe.c:111:11: error: always_inline function '_mm256_loadu_si256' requires target feature 'avx', but would be inlined into function 'poly_mul' that is compiled without support for 'avx'
bin-lwe.c: ...

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

Compiler output

Implementation: T:avx2
Security model: timingleaks
Compiler: gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE
bin-lwe.c: bin-lwe.c: In function 'poly_mul':
bin-lwe.c: bin-lwe.c:91:16: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
bin-lwe.c: 91 | tmp_one=_mm256_set_epi16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
bin-lwe.c: | ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bin-lwe.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
bin-lwe.c: from bin-lwe.c:1:
bin-lwe.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1273:1: error: inlining failed in call to 'always_inline' '_mm256_set_epi16': target specific option mismatch
bin-lwe.c: 1273 | _mm256_set_epi16 (short __q15, short __q14, short __q13, short __q12,
bin-lwe.c: | ^~~~~~~~~~~~~~~~
bin-lwe.c: bin-lwe.c:91:17: note: called from here
bin-lwe.c: 91 | tmp_one=_mm256_set_epi16(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);
bin-lwe.c: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bin-lwe.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
bin-lwe.c: from bin-lwe.c:1:
bin-lwe.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1242:1: error: inlining failed in call to 'always_inline' '_mm256_setzero_si256': target specific option mismatch
bin-lwe.c: 1242 | _mm256_setzero_si256 (void)
bin-lwe.c: | ^~~~~~~~~~~~~~~~~~~~
bin-lwe.c: bin-lwe.c:103:23: note: called from here
bin-lwe.c: 103 | tmp2 =_mm256_setzero_si256();
bin-lwe.c: | ^~~~~~~~~~~~~~~~~~~~~~
bin-lwe.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:47,
bin-lwe.c: from bin-lwe.c:1:
bin-lwe.c: /usr/lib/gcc/x86_64-linux-gnu/11/include/avx2intrin.h:112:1: error: inlining failed in call to 'always_inline' '_mm256_add_epi16': target specific option mismatch
bin-lwe.c: 112 | _mm256_add_epi16 (__m256i __A, __m256i __B)
bin-lwe.c: | ^~~~~~~~~~~~~~~~
bin-lwe.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv -fPIC -fPIE T:avx2