Implementation notes: amd64, speed2supercop, crypto_core/invsntrup761

Computer: speed2supercop
Microarchitecture: amd64; Haswell+AES (306c3)
Architecture: amd64
CPU ID: GenuineIntel-000306c3-1fc9cbf5
SUPERCOP version: 20240625
Operation: crypto_core
Primitive: invsntrup761
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
656480249051 0 0257862 792 776jumpdivstepsclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
660904235835 0 0244438 792 776jumpdivstepsclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
668172211744 0 0223639 784 856jumpdivstepsclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
699648240902 0 0245654 792 760jumpdivstepsclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
700988243235 0 0256781 752 832jumpdivstepsgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
705056259919 0 0271525 752 832jumpdivstepsgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
8116244321 0 019358 792 776avxclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
846428261812 0 0273453 752 832jumpdivstepsgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
8508323321 0 018182 792 776avxclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
8644641530 0 013367 784 856avxclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
874036198853 0 0209444 736 800jumpdivstepsgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
8859761629 0 012598 792 760avxclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
9054041375 0 011508 736 800avxgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
9060961695 0 012804 744 832avxgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
9447361786 0 013101 752 832avxgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
9450803537 0 016829 752 832avxgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
93374604037 0 017391 760 832refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
94324283992 0 018912 800 776refclang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
95940245048 0 020144 800 776refclang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
222983923794 0 017464 800 760refclang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
32215060990 0 012375 760 832refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
356535841156 0 012160 800 760refclang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
356784321034 0 012945 792 856refclang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
389595281045 0 012124 744 832refgcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625
41542980844 0 011006 744 800refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024070120240625

Compiler output


recip.c: recip.c:94:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx'
recip.c:   __m256i f0vec = _mm256_set1_epi16(f0);
recip.c:                   ^
recip.c: recip.c:94:19: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
recip.c: recip.c:95:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx'
recip.c:   __m256i g0vec = _mm256_set1_epi16(g0);
recip.c:                   ^
recip.c: recip.c:95:19: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
recip.c: recip.c:96:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx'
recip.c:   __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c:                                                ^
recip.c: recip.c:80:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c:                 ^
recip.c: recip.c:96:48: error: AVX vector return of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
recip.c: recip.c:80:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c:                 ^
recip.c: recip.c:96:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c:   __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c:                       ^
recip.c: recip.c:96:23: error: AVX vector argument of type '__m256i' (vector of 4 'long long' values) without 'avx' enabled changes the ABI
recip.c: recip.c:97:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'avx', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx'
recip.c:   __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c:                                                ^
recip.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
avxclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


avx-768.c: avx-768.c:586:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                   ^
avx-768.c: avx-768.c:586:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                         ^
avx-768.c: avx-768.c:586:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                            ^
avx-768.c: avx-768.c:716:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                   ^
avx-768.c: avx-768.c:716:38: warning: unused variable 'h1' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                      ^
avx-768.c: avx-768.c:716:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                         ^
avx-768.c: avx-768.c:716:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                            ^
avx-768.c: avx-768.c:847:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                   ^
avx-768.c: avx-768.c:847:38: warning: unused variable 'h1' [-Wunused-variable]
avx-768.c: ...
avx.c: avx.c:23:21: warning: unused function 'mullo' [-Wunused-function]
avx.c: static inline int16 mullo(int16 x,int16 y)
avx.c:                     ^
avx.c: avx.c:28:21: warning: unused function 'mulhi' [-Wunused-function]
avx.c: static inline int16 mulhi(int16 x,int16 y)
avx.c:                     ^
avx.c: avx.c:33:21: warning: unused function 'mulhrs' [-Wunused-function]
avx.c: static inline int16 mulhrs(int16 x,int16 y)
avx.c:                     ^
avx.c: 3 warnings generated.
avx3-512.c: avx3-512.c:935:35: warning: unused variable 'h0' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                   ^
avx3-512.c: avx3-512.c:935:38: warning: unused variable 'h1' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                      ^
avx3-512.c: avx3-512.c:935:41: warning: unused variable 'h2' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                         ^
avx3-512.c: avx3-512.c:935:44: warning: unused variable 'h3' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                            ^
avx3-512.c: avx3-512.c:978:35: warning: unused variable 'h0' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                   ^
avx3-512.c: avx3-512.c:978:38: warning: unused variable 'h1' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                      ^
avx3-512.c: avx3-512.c:978:41: warning: unused variable 'h2' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                         ^
avx3-512.c: avx3-512.c:978:44: warning: unused variable 'h3' [-Wunused-variable]
avx3-512.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:                                            ^
avx3-512.c: avx3-512.c:1055:35: warning: unused variable 'h0' [-Wunused-variable]
avx3-512.c: ...
jump32divsteps.c: jump32divsteps.c:14:8: warning: unused variable 'f0' [-Wunused-variable]
jump32divsteps.c:   modq f0, g0;
jump32divsteps.c:        ^
jump32divsteps.c: jump32divsteps.c:14:12: warning: unused variable 'g0' [-Wunused-variable]
jump32divsteps.c:   modq f0, g0;
jump32divsteps.c:            ^
jump32divsteps.c: jump32divsteps.c:18:25: warning: unused variable 'mask' [-Wunused-variable]
jump32divsteps.c:   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:                         ^
jump32divsteps.c: jump32divsteps.c:18:37: warning: unused variable 'gx' [-Wunused-variable]
jump32divsteps.c:   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:                                     ^
jump32divsteps.c: jump32divsteps.c:18:45: warning: unused variable 'uy' [-Wunused-variable]
jump32divsteps.c:   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:                                             ^
jump32divsteps.c: jump32divsteps.c:18:53: warning: unused variable 'vy' [-Wunused-variable]
jump32divsteps.c:   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:                                                     ^
jump32divsteps.c: jump32divsteps.c:21:11: warning: unused variable 'delta_v' [-Wunused-variable]
jump32divsteps.c:   __m256i delta_v = _mm256_set1_epi16((int16_t)delta);
jump32divsteps.c:           ^
jump32divsteps.c: jump32divsteps.c:115:25: warning: unused variable 'mask' [-Wunused-variable]
jump32divsteps.c:   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:                         ^
jump32divsteps.c: jump32divsteps.c:115:37: warning: unused variable 'gx' [-Wunused-variable]
jump32divsteps.c: ...
jumpNdivsteps.c: jumpNdivsteps.c:23:11: warning: unused variable 'mask' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask, mask1, temp;
jumpNdivsteps.c:           ^
jumpNdivsteps.c: jumpNdivsteps.c:23:17: warning: unused variable 'mask1' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask, mask1, temp;
jumpNdivsteps.c:                 ^
jumpNdivsteps.c: jumpNdivsteps.c:23:24: warning: unused variable 'temp' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask, mask1, temp;
jumpNdivsteps.c:                        ^
jumpNdivsteps.c: jumpNdivsteps.c:61:11: warning: unused variable 'mask' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask,mask1,temp;
jumpNdivsteps.c:           ^
jumpNdivsteps.c: jumpNdivsteps.c:61:16: warning: unused variable 'mask1' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask,mask1,temp;
jumpNdivsteps.c:                ^
jumpNdivsteps.c: jumpNdivsteps.c:61:22: warning: unused variable 'temp' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask,mask1,temp;
jumpNdivsteps.c:                      ^
jumpNdivsteps.c: jumpNdivsteps.c:62:7: warning: unused variable 'i' [-Wunused-variable]
jumpNdivsteps.c:   int i;
jumpNdivsteps.c:       ^
jumpNdivsteps.c: jumpNdivsteps.c:133:11: warning: unused variable 'mask' [-Wunused-variable]
jumpNdivsteps.c:   __m256i mask, mask1, temp;
jumpNdivsteps.c:           ^
jumpNdivsteps.c: jumpNdivsteps.c:133:17: warning: unused variable 'mask1' [-Wunused-variable]
jumpNdivsteps.c: ...
polymul_ntt.c: In file included from polymul_ntt.c:12:
polymul_ntt.c: ./crt3modq.h:158:12: warning: unused function 'crt3__inside' [-Wunused-function]
polymul_ntt.c: static int crt3__inside(short u1, short u2, short u3) {
polymul_ntt.c:            ^
polymul_ntt.c: polymul_ntt.c:166:13: warning: unused function 'polymulntt512_256x256_test' [-Wunused-function]
polymul_ntt.c: static void polymulntt512_256x256_test(__m256i *h, __m256i *f, __m256i *g)
polymul_ntt.c:             ^
polymul_ntt.c: polymul_ntt.c:324:13: warning: unused function 'polymulntt768_256x256_test' [-Wunused-function]
polymul_ntt.c: static void polymulntt768_256x256_test(__m256i *h, __m256i *f, __m256i *g)
polymul_ntt.c:             ^
polymul_ntt.c: 3 warnings generated.

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
jumpdivstepsclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


avx-768.c: avx-768.c:544:36: error: invalid output size for constraint '+x'
avx-768.c:   __asm__("vpsubw %1,%0,%0" : "+x"(a),"+x"(b));
avx-768.c:                                    ^
avx-768.c: avx-768.c:550:36: error: invalid output size for constraint '+x'
avx-768.c:   __asm__("vpaddw %1,%0,%0" : "+x"(a),"+x"(b));
avx-768.c:                                    ^
avx-768.c: avx-768.c:586:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                   ^
avx-768.c: avx-768.c:586:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                         ^
avx-768.c: avx-768.c:586:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                            ^
avx-768.c: avx-768.c:716:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                   ^
avx-768.c: avx-768.c:716:38: warning: unused variable 'h1' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                      ^
avx-768.c: avx-768.c:716:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:                                         ^
avx-768.c: avx-768.c:716:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
jumpdivstepsclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))

Compiler output


avx-768.c: avx-768.c: In function 'ntt64':
avx-768.c: avx-768.c:586:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c:   586 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                            ^~
avx-768.c: avx-768.c:586:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   586 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                         ^~
avx-768.c: avx-768.c:586:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   586 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                   ^~
avx-768.c: avx-768.c: In function 'invntt64':
avx-768.c: avx-768.c:716:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c:   716 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                            ^~
avx-768.c: avx-768.c:716:41: warning: unused variable 'h2' [-Wunused-variable]
avx-768.c:   716 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                         ^~
avx-768.c: avx-768.c:716:38: warning: unused variable 'h1' [-Wunused-variable]
avx-768.c:   716 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                      ^~
avx-768.c: avx-768.c:716:35: warning: unused variable 'h0' [-Wunused-variable]
avx-768.c:   716 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx-768.c:       |                                   ^~
avx-768.c: avx-768.c: In function 'ntt256':
avx-768.c: avx-768.c:847:44: warning: unused variable 'h3' [-Wunused-variable]
avx-768.c: ...
avx.c: avx.c:106:42: warning: argument 1 of type 'int16x16[1]' {aka '__m256i[1]'} with mismatched bound [-Warray-parameter=]
avx.c:   106 | inline void mult1_over65536_x16(int16x16 h[1],const int16x16 f[1],const int16x16 g[1])
avx.c:       |                                 ~~~~~~~~~^~~~
avx.c: In file included from avx.c:5:
avx.c: avx.h:43:33: note: previously declared as 'int16x16 *' {aka '__m256i *'}
avx.c:    43 | extern void mult1_over65536_x16(int16x16 *,const int16x16 *,const int16x16 *);
avx.c:       |                                 ^~~~~~~~~~
avx.c: avx.c:106:62: warning: argument 2 of type 'const int16x16[1]' {aka 'const __m256i[1]'} with mismatched bound [-Warray-parameter=]
avx.c:   106 | inline void mult1_over65536_x16(int16x16 h[1],const int16x16 f[1],const int16x16 g[1])
avx.c:       |                                               ~~~~~~~~~~~~~~~^~~~
avx.c: avx.h:43:44: note: previously declared as 'const int16x16 *' {aka 'const __m256i *'}
avx.c:    43 | extern void mult1_over65536_x16(int16x16 *,const int16x16 *,const int16x16 *);
avx.c:       |                                            ^~~~~~~~~~~~~~~~
avx.c: avx.c:106:82: warning: argument 3 of type 'const int16x16[1]' {aka 'const __m256i[1]'} with mismatched bound [-Warray-parameter=]
avx.c:   106 | inline void mult1_over65536_x16(int16x16 h[1],const int16x16 f[1],const int16x16 g[1])
avx.c:       |                                                                   ~~~~~~~~~~~~~~~^~~~
avx.c: avx.h:43:61: note: previously declared as 'const int16x16 *' {aka 'const __m256i *'}
avx.c:    43 | extern void mult1_over65536_x16(int16x16 *,const int16x16 *,const int16x16 *);
avx.c:       |                                                             ^~~~~~~~~~~~~~~~
avx.c: avx.c:128:42: warning: argument 1 of type 'int16x16[3]' {aka '__m256i[3]'} with mismatched bound [-Warray-parameter=]
avx.c:   128 | inline void mult2_over65536_x16(int16x16 h[3],const int16x16 f[2],const int16x16 g[2])
avx.c:       |                                 ~~~~~~~~~^~~~
avx.c: avx.h:44:33: note: previously declared as 'int16x16 *' {aka '__m256i *'}
avx.c:    44 | extern void mult2_over65536_x16(int16x16 *,const int16x16 *,const int16x16 *);
avx.c:       |                                 ^~~~~~~~~~
avx.c: ...
avx3-512.c: avx3-512.c: In function 'ntt512':
avx3-512.c: avx3-512.c:935:44: warning: unused variable 'h3' [-Wunused-variable]
avx3-512.c:   935 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                            ^~
avx3-512.c: avx3-512.c:935:41: warning: unused variable 'h2' [-Wunused-variable]
avx3-512.c:   935 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                         ^~
avx3-512.c: avx3-512.c:935:38: warning: unused variable 'h1' [-Wunused-variable]
avx3-512.c:   935 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                      ^~
avx3-512.c: avx3-512.c:935:35: warning: unused variable 'h0' [-Wunused-variable]
avx3-512.c:   935 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                   ^~
avx3-512.c: avx3-512.c: In function 'ntt512_256':
avx3-512.c: avx3-512.c:978:44: warning: unused variable 'h3' [-Wunused-variable]
avx3-512.c:   978 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                            ^~
avx3-512.c: avx3-512.c:978:41: warning: unused variable 'h2' [-Wunused-variable]
avx3-512.c:   978 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                         ^~
avx3-512.c: avx3-512.c:978:38: warning: unused variable 'h1' [-Wunused-variable]
avx3-512.c:   978 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c:       |                                      ^~
avx3-512.c: avx3-512.c:978:35: warning: unused variable 'h0' [-Wunused-variable]
avx3-512.c:   978 |   __m256i f0,f1,f2,f3,g0,g1,g2,g3,h0,h1,h2,h3;
avx3-512.c: ...
jump32divsteps.c: jump32divsteps.c: In function 'crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump32divsteps':
jump32divsteps.c: jump32divsteps.c:21:11: warning: unused variable 'delta_v' [-Wunused-variable]
jump32divsteps.c:    21 |   __m256i delta_v = _mm256_set1_epi16((int16_t)delta);
jump32divsteps.c:       |           ^~~~~~~
jump32divsteps.c: jump32divsteps.c:18:53: warning: unused variable 'vy' [-Wunused-variable]
jump32divsteps.c:    18 |   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:       |                                                     ^~
jump32divsteps.c: jump32divsteps.c:18:45: warning: unused variable 'uy' [-Wunused-variable]
jump32divsteps.c:    18 |   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:       |                                             ^~
jump32divsteps.c: jump32divsteps.c:18:37: warning: unused variable 'gx' [-Wunused-variable]
jump32divsteps.c:    18 |   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:       |                                     ^~
jump32divsteps.c: jump32divsteps.c:18:25: warning: unused variable 'mask' [-Wunused-variable]
jump32divsteps.c:    18 |   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c:       |                         ^~~~
jump32divsteps.c: jump32divsteps.c:14:12: warning: unused variable 'g0' [-Wunused-variable]
jump32divsteps.c:    14 |   modq f0, g0;
jump32divsteps.c:       |            ^~
jump32divsteps.c: jump32divsteps.c:14:8: warning: unused variable 'f0' [-Wunused-variable]
jump32divsteps.c:    14 |   modq f0, g0;
jump32divsteps.c:       |        ^~
jump32divsteps.c: jump32divsteps.c: In function 'crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump32xdivsteps':
jump32divsteps.c: jump32divsteps.c:115:53: warning: unused variable 'vy' [-Wunused-variable]
jump32divsteps.c:   115 |   __m256i minusdelta_v, mask, temp, gx, ux, uy, vx, vy, qx, rx;
jump32divsteps.c: ...
jumpNdivsteps.c: jumpNdivsteps.c: In function 'crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump64divsteps':
jumpNdivsteps.c: jumpNdivsteps.c:23:24: warning: unused variable 'temp' [-Wunused-variable]
jumpNdivsteps.c:    23 |   __m256i mask, mask1, temp;
jumpNdivsteps.c:       |                        ^~~~
jumpNdivsteps.c: jumpNdivsteps.c:23:17: warning: unused variable 'mask1' [-Wunused-variable]
jumpNdivsteps.c:    23 |   __m256i mask, mask1, temp;
jumpNdivsteps.c:       |                 ^~~~~
jumpNdivsteps.c: jumpNdivsteps.c:23:11: warning: unused variable 'mask' [-Wunused-variable]
jumpNdivsteps.c:    23 |   __m256i mask, mask1, temp;
jumpNdivsteps.c:       |           ^~~~
jumpNdivsteps.c: jumpNdivsteps.c: In function 'crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump64xdivsteps':
jumpNdivsteps.c: jumpNdivsteps.c:62:7: warning: unused variable 'i' [-Wunused-variable]
jumpNdivsteps.c:    62 |   int i;
jumpNdivsteps.c:       |       ^
jumpNdivsteps.c: jumpNdivsteps.c:61:22: warning: unused variable 'temp' [-Wunused-variable]
jumpNdivsteps.c:    61 |   __m256i mask,mask1,temp;
jumpNdivsteps.c:       |                      ^~~~
jumpNdivsteps.c: jumpNdivsteps.c:61:16: warning: unused variable 'mask1' [-Wunused-variable]
jumpNdivsteps.c:    61 |   __m256i mask,mask1,temp;
jumpNdivsteps.c:       |                ^~~~~
jumpNdivsteps.c: jumpNdivsteps.c:61:11: warning: unused variable 'mask' [-Wunused-variable]
jumpNdivsteps.c:    61 |   __m256i mask,mask1,temp;
jumpNdivsteps.c:       |           ^~~~
jumpNdivsteps.c: jumpNdivsteps.c: In function 'crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump128divsteps':
jumpNdivsteps.c: jumpNdivsteps.c:133:24: warning: unused variable 'temp' [-Wunused-variable]
jumpNdivsteps.c: ...
polymul_ntt.c: polymul_ntt.c:324:13: warning: 'polymulntt768_256x256_test' defined but not used [-Wunused-function]
polymul_ntt.c:   324 | static void polymulntt768_256x256_test(__m256i *h, __m256i *f, __m256i *g)
polymul_ntt.c:       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
polymul_ntt.c: polymul_ntt.c:166:13: warning: 'polymulntt512_256x256_test' defined but not used [-Wunused-function]
polymul_ntt.c:   166 | static void polymulntt512_256x256_test(__m256i *h, __m256i *f, __m256i *g)
polymul_ntt.c:       |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
polymul_ntt.c: In file included from polymul_ntt.c:12:
polymul_ntt.c: crt3modq.h:158:12: warning: 'crt3__inside' defined but not used [-Wunused-function]
polymul_ntt.c:   158 | static int crt3__inside(short u1, short u2, short u3) {
polymul_ntt.c:       |            ^~~~~~~~~~~~

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

TIMECOP error (can be valgrind bug)


at 0x...: show_sched_status_wrk (m_libcassert.c:407)
   by 0x...: report_and_quit (m_libcassert.c:478)
   by 0x...: panic (m_libcassert.c:554)
   by 0x...: vgPlain_core_panic_at (m_libcassert.c:559)
   by 0x...: vgPlain_core_panic (m_libcassert.c:564)
   by 0x...: failure_exit (m_translate.c:761)
   by 0x...: vpanic (main_util.c:253)
   by 0x...: private_LibVEX_alloc_OOM (main_util.c:181)
   by 0x...: LibVEX_Alloc_inline (main_util.h:176)
   by 0x...: AMD64AMode_IR (host_amd64_defs.c:187)
   by 0x...: genReload_AMD64 (host_amd64_defs.c:2112)
   by 0x...: doRegisterAllocation_v3 (host_generic_reg_alloc3.c:1293)
   by 0x...: libvex_BackEnd (main_main.c:1133)
   by 0x...: LibVEX_Translate (main_main.c:1236)
   by 0x...: vgPlain_translate (m_translate.c:1831)
   by 0x...: handle_chain_me (scheduler.c:1166)
   by 0x...: vgPlain_scheduler (scheduler.c:1562)
   by 0x...: thread_wrapper (syswrap-linux.c:102)
   by 0x...: run_a_thread_NORETURN (syswrap-linux.c:155)
sched status:
running_tid=1
Thread 1: status = VgTs_Runnable (lwpid 946495)
   at 0x...: _mm256_mullo_epi16 (avx2intrin.h:555)
   by 0x...: barrett_fake (gf4591_avx2.h:58)
   by 0x...: crypto_core_invsntrup761_jumpdivsteps_constbranchindex_gf_polymul_128x128_avx2_divR (polymul_NxN.c:431)
   by 0x...: crypto_core_invsntrup761_jumpdivsteps_constbranchindex_gf_polymul_128x128_avx2_uvqr_fg (polymul_NxN.c:537)
   by 0x...: crypto_core_invsntrup761_jumpdivsteps_constbranchindex_jump256divsteps (jumpNdivsteps.c:278)
   by 0x...: crypto_core_invsntrup761_jumpdivsteps_constbranchindex_rq_recip3 (rq_recip3_new.c:200)
   by 0x...: crypto_core_invsntrup761_jumpdivsteps_constbranchindex (wrapper.c:10)
   by 0x...: test (try.c:106)
   by 0x...: main (try-anything.c:345)
client stack range: [0x1FFEFEE000 0x1FFF000FFF] client SP: 0x1FFEFEE240
valgrind stack range: [0x10091CF000 0x10092CEFFF] top usage: 18104 of 1048576
Note: see also the FAQ in the source distribution.
It contains workarounds to several common problems.
In particular, if Valgrind aborted or crashed after
identifying problems in your program, there's a good chance
that fixing those problems will prevent Valgrind aborting or
crashing, especially if it happened in m_mallocfree.c.
If that doesn't help, please report this bug to: www.valgrind.org
In the bug report, send all the above text, the valgrind
version, and what OS and version you are using.  Thanks.

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
jumpdivstepsgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)

Passed TIMECOP


TIMECOP iterations: 1

Number of similar (implementation,compiler) pairs: 24, namely:
ImplementationCompiler
avxclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
avxclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
avxclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
avxclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
avxgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avxgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avxgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
avxgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
jumpdivstepsclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
jumpdivstepsgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
jumpdivstepsgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
jumpdivstepsgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1))
refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)
refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0)