Test results for amd64, hydra4, crypto_kem/saber2

[Page version: 20240911 13:30:47]

Measurements for amd64, hydra4, crypto_kem Test results for amd64, hydra4, crypto_kem Test results for crypto_kem/saber2
Computer: hydra4
Microarchitecture: amd64; K10 32nm (300f10)
Architecture: amd64
CPU ID: AuthenticAMD-00300f10-178bfbff
SUPERCOP version: 20240909
Operation: crypto_kem
Primitive: saber2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
62559143485 0 062011 828 1720T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
62989095579 0 0114891 828 1720T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
63026893193 0 0112571 828 1720T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
71887051356 0 071047 796 1752T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
177552313511 0 030193 820 1720T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
190419514778 0 032137 820 1720T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
202816015594 0 034135 796 1752T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
211467312734 0 030391 796 1752T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071220240625
217432612296 0 028639 788 1720T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071220240625

Compiler output


SABER_indcpa.c: In file included from SABER_indcpa.c:9:
SABER_indcpa.c: In file included from ././polymul/toom-cook_4way.c:6:
SABER_indcpa.c: ././polymul/scm_avx.c:40:13: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c:         c_avx[0] = mul_add(a0, b0, c_avx[0]);
SABER_indcpa.c:                    ^
SABER_indcpa.c: ././polymul/scm_avx.c:43:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c:         temp = _mm256_mullo_epi16 (a0, b1);
SABER_indcpa.c:                ^
SABER_indcpa.c: ././polymul/scm_avx.c:43:9: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
SABER_indcpa.c: ././polymul/scm_avx.c:44:7: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c:         temp=mul_add(a1, b0, temp);
SABER_indcpa.c:              ^
SABER_indcpa.c: ././polymul/scm_avx.c:45:13: error: always_inline function '_mm256_add_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c:         c_avx[1] = _mm256_add_epi16(temp, c_avx[1]);
SABER_indcpa.c:                    ^
SABER_indcpa.c: ././polymul/scm_avx.c:45:13: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
SABER_indcpa.c: ././polymul/scm_avx.c:48:9: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'schoolbook_avx_new3_acc' that is compiled without support for 'avx2'
SABER_indcpa.c:         temp = _mm256_mullo_epi16 (a0, b2);
SABER_indcpa.c:                ^
SABER_indcpa.c: ././polymul/scm_avx.c:48:9: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
SABER_indcpa.c: ././polymul/scm_avx.c:49:9: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c:         temp = mul_add(a1, b1, temp);
SABER_indcpa.c:                ^
SABER_indcpa.c: ././polymul/scm_avx.c:50:7: warning: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI [-Wpsabi]
SABER_indcpa.c:         temp=mul_add(a2, b0, temp);
SABER_indcpa.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


SABER_indcpa.c: In file included from ./polymul/toom-cook_4way.c:6,
SABER_indcpa.c:                  from SABER_indcpa.c:9:
SABER_indcpa.c: ./polymul/scm_avx.c: In function 'mul_add':
SABER_indcpa.c: ./polymul/scm_avx.c:6:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
SABER_indcpa.c:     6 | inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c:       | ^~~~~~
SABER_indcpa.c: ./polymul/scm_avx.c:6:16: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
SABER_indcpa.c:     6 | inline __m256i mul_add(__m256i a, __m256i b, __m256i c) {
SABER_indcpa.c:       |                ^~~~~~~
SABER_indcpa.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
SABER_indcpa.c:                  from SABER_indcpa.h:4,
SABER_indcpa.c:                  from SABER_indcpa.c:5:
SABER_indcpa.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:112:1: error: inlining failed in call to 'always_inline' '_mm256_add_epi16': target specific option mismatch
SABER_indcpa.c:   112 | _mm256_add_epi16 (__m256i __A, __m256i __B)
SABER_indcpa.c:       | ^~~~~~~~~~~~~~~~
SABER_indcpa.c: In file included from ./polymul/toom-cook_4way.c:6,
SABER_indcpa.c:                  from SABER_indcpa.c:9:
SABER_indcpa.c: ./polymul/scm_avx.c:7:12: note: called from here
SABER_indcpa.c:     7 |     return _mm256_add_epi16(_mm256_mullo_epi16(a, b), c);
SABER_indcpa.c:       |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
SABER_indcpa.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
SABER_indcpa.c:                  from SABER_indcpa.h:4,
SABER_indcpa.c:                  from SABER_indcpa.c:5:
SABER_indcpa.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:553:1: error: inlining failed in call to 'always_inline' '_mm256_mullo_epi16': target specific option mismatch
SABER_indcpa.c:   553 | _mm256_mullo_epi16 (__m256i __A, __m256i __B)
SABER_indcpa.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)

Compiler output


poly.c: poly.c:31:26: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i u_pinv = _mm256_set1_epi16(CRT_U_PINV);
poly.c:                          ^
poly.c: poly.c:31:26: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:32:21: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i u = _mm256_set1_epi16(CRT_U);
poly.c:                     ^
poly.c: poly.c:32:21: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:33:22: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i p0 = _mm256_load_si256((__m256i *)&PDATA0[_16XP]);
poly.c:                      ^
poly.c: poly.c:33:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:34:22: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i p1 = _mm256_load_si256((__m256i *)&PDATA1[_16XP]);
poly.c:                      ^
poly.c: poly.c:34:22: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:35:23: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i mod = _mm256_set1_epi16(KEM_Q-1);
poly.c:                       ^
poly.c: poly.c:35:23: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:36:30: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c:   const __m256i mont0_pinv = _mm256_load_si256((__m256i *)&PDATA0[_16XMONT_PINV]);
poly.c:                              ^
poly.c: poly.c:36:30: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
poly.c: poly.c:37:25: error: always_inline function '_mm256_load_si256' requires target feature 'avx', but would be inlined into function 'nttmul_poly_crt' that is compiled without support for 'avx'
poly.c: ...

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

Compiler output


poly.c: poly.c: In function 'mulmod':
poly.c: poly.c:7:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
poly.c:     7 | static inline __m256i mulmod(const __m256i a, const __m256i b_pinv, const __m256i b, const __m256i p) {
poly.c:       | ^~~~~~
poly.c: poly.c:7:23: note: the ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
poly.c:     7 | static inline __m256i mulmod(const __m256i a, const __m256i b_pinv, const __m256i b, const __m256i p) {
poly.c:       |                       ^~~~~~
poly.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
poly.c:                  from poly.c:3:
poly.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:808:1: error: inlining failed in call to 'always_inline' '_mm256_sub_epi16': target specific option mismatch
poly.c:   808 | _mm256_sub_epi16 (__m256i __A, __m256i __B)
poly.c:       | ^~~~~~~~~~~~~~~~
poly.c: poly.c:12:7: note: called from here
poly.c:    12 |   t = _mm256_sub_epi16(u,t);
poly.c:       |       ^~~~~~~~~~~~~~~~~~~~~
poly.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
poly.c:                  from poly.c:3:
poly.c: /usr/lib/gcc/x86_64-linux-gnu/10/include/avx2intrin.h:546:1: error: inlining failed in call to 'always_inline' '_mm256_mulhi_epi16': target specific option mismatch
poly.c:   546 | _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
poly.c:       | ^~~~~~~~~~~~~~~~~~
poly.c: poly.c:11:7: note: called from here
poly.c:    11 |   t = _mm256_mulhi_epi16(t,p);
poly.c:       |       ^~~~~~~~~~~~~~~~~~~~~~~
poly.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/10/include/immintrin.h:53,
poly.c:                  from poly.c:3:
poly.c: ...

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