Implementation notes: amd64, comet, crypto_kem/lotus192

Computer: comet
Microarchitecture: amd64; Comet Lake (806ec)
Architecture: amd64
CPU ID: GenuineIntel-000806ec-bfebfbff
SUPERCOP version: 20240625
Operation: crypto_kem
Primitive: lotus192
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
74551238383 0 866345 852 1792T:optgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
92882331540 0 859409 852 1792T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
184586444008 0 873303 908 1728T:optclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
194471251171 0 880775 908 1792T:optclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
211320047404 0 875399 908 1728T:optclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
217514725878 0 855127 908 1728T:refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
234398130262 0 859919 908 1792T:refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
245647329799 0 857751 908 1728T:refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
331722910425 0 836025 852 1792T:avx2gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
353683811343 0 837821 900 1792T:optclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
375323712723 0 838817 852 1792T:optgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
614517414872 0 840575 908 1728T:optclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
62723559419 0 834975 908 1728T:refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
63828528076 0 834485 900 1792T:refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
69260819221 0 835193 852 1792T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
724689810432 0 836017 852 1792T:optgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
100154628112 0 833609 852 1792T:refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
108702257442 0 831865 844 1760T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625
109259929766 0 834209 844 1760T:optgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071920240625

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:211:5: warning: array index 4 is past the end of the array (which contains 4 elements) [-Warray-bounds]
lwe-arithmetics_avx2.c:     c[4] = _mm256_loadu_si256((__m256i*)(C + 64));
lwe-arithmetics_avx2.c:     ^ ~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:3: note: array 'c' declared here
lwe-arithmetics_avx2.c:   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:   ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:212:5: warning: array index 5 is past the end of the array (which contains 4 elements) [-Warray-bounds]
lwe-arithmetics_avx2.c:     c[5] = _mm256_loadu_si256((__m256i*)(C + 80));
lwe-arithmetics_avx2.c:     ^ ~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:3: note: array 'c' declared here
lwe-arithmetics_avx2.c:   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:   ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:220:7: warning: array index 4 is past the end of the array (which contains 4 elements) [-Warray-bounds]
lwe-arithmetics_avx2.c:       b[4] = _mm256_loadu_si256((__m256i*)(p + 64));
lwe-arithmetics_avx2.c:       ^ ~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:3: note: array 'b' declared here
lwe-arithmetics_avx2.c:   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:   ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:221:7: warning: array index 5 is past the end of the array (which contains 4 elements) [-Warray-bounds]
lwe-arithmetics_avx2.c:       b[5] = _mm256_loadu_si256((__m256i*)(p + 80));
lwe-arithmetics_avx2.c:       ^ ~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:3: note: array 'b' declared here
lwe-arithmetics_avx2.c:   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:   ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:226:33: warning: array index 4 is past the end of the array (which contains 4 elements) [-Warray-bounds]
lwe-arithmetics_avx2.c: ...

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

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: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:162: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: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:163: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:166: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 (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:avx2clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_14.0.6)

Compiler output


lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c: In function 'submat_submul':
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:211:6: warning: array subscript 4 is above array bounds of '__m256i[4]' [-Warray-bounds]
lwe-arithmetics_avx2.c:   211 |     c[4] = _mm256_loadu_si256((__m256i*)(C + 64));
lwe-arithmetics_avx2.c:       |     ~^~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:20: note: while referencing 'c'
lwe-arithmetics_avx2.c:   204 |   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:       |                    ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:212:6: warning: array subscript 5 is above array bounds of '__m256i[4]' [-Warray-bounds]
lwe-arithmetics_avx2.c:   212 |     c[5] = _mm256_loadu_si256((__m256i*)(C + 80));
lwe-arithmetics_avx2.c:       |     ~^~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:20: note: while referencing 'c'
lwe-arithmetics_avx2.c:   204 |   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:       |                    ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:240:5: warning: array subscript 4 is above array bounds of '__m256i[4]' [-Warray-bounds]
lwe-arithmetics_avx2.c:   240 |     _mm256_storeu_si256((__m256i*)(C + 64), c[4]);
lwe-arithmetics_avx2.c:       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:20: note: while referencing 'c'
lwe-arithmetics_avx2.c:   204 |   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:       |                    ^
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:241:5: warning: array subscript 5 is above array bounds of '__m256i[4]' [-Warray-bounds]
lwe-arithmetics_avx2.c:   241 |     _mm256_storeu_si256((__m256i*)(C + 80), c[5]);
lwe-arithmetics_avx2.c:       |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
lwe-arithmetics_avx2.c: lwe-arithmetics_avx2.c:204:20: note: while referencing 'c'
lwe-arithmetics_avx2.c:   204 |   __m256i a, b[4], c[4];
lwe-arithmetics_avx2.c:       |                    ^
lwe-arithmetics_avx2.c: ...

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