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
Time | Object size | Test size | Implementation | Compiler | Benchmark date | SUPERCOP version |
656480 | 249051 0 0 | 257862 792 776 | jumpdivsteps | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
660904 | 235835 0 0 | 244438 792 776 | jumpdivsteps | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
668172 | 211744 0 0 | 223639 784 856 | jumpdivsteps | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
699648 | 240902 0 0 | 245654 792 760 | jumpdivsteps | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
700988 | 243235 0 0 | 256781 752 832 | jumpdivsteps | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
705056 | 259919 0 0 | 271525 752 832 | jumpdivsteps | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
811624 | 4321 0 0 | 19358 792 776 | avx | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
846428 | 261812 0 0 | 273453 752 832 | jumpdivsteps | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
850832 | 3321 0 0 | 18182 792 776 | avx | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
864464 | 1530 0 0 | 13367 784 856 | avx | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
874036 | 198853 0 0 | 209444 736 800 | jumpdivsteps | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
885976 | 1629 0 0 | 12598 792 760 | avx | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
905404 | 1375 0 0 | 11508 736 800 | avx | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
906096 | 1695 0 0 | 12804 744 832 | avx | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
944736 | 1786 0 0 | 13101 752 832 | avx | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
945080 | 3537 0 0 | 16829 752 832 | avx | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
9337460 | 4037 0 0 | 17391 760 832 | ref | gcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
9432428 | 3992 0 0 | 18912 800 776 | ref | clang_-march=native_-O2_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
9594024 | 5048 0 0 | 20144 800 776 | ref | clang_-march=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
22298392 | 3794 0 0 | 17464 800 760 | ref | clang_-mcpu=native_-O3_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
32215060 | 990 0 0 | 12375 760 832 | ref | gcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
35653584 | 1156 0 0 | 12160 800 760 | ref | clang_-march=native_-O_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
35678432 | 1034 0 0 | 12945 792 856 | ref | clang_-march=native_-Os_-fwrapv_-Qunused-arguments_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
38959528 | 1045 0 0 | 12124 744 832 | ref | gcc_-march=native_-mtune=native_-O_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
41542980 | 844 0 0 | 11006 744 800 | ref | gcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall | 20240701 | 20240625 |
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:
Implementation | Compiler |
avx | clang -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:
Implementation | Compiler |
jumpdivsteps | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -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:
Implementation | Compiler |
jumpdivsteps | clang -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:
Implementation | Compiler |
jumpdivsteps | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | gcc -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:
Implementation | Compiler |
jumpdivsteps | gcc -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:
Implementation | Compiler |
avx | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
avx | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
avx | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
avx | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
avx | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
avx | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
avx | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
avx | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
jumpdivsteps | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
jumpdivsteps | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
ref | clang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
ref | clang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
ref | clang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
ref | clang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
ref | clang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_16.0.6_(27+b1)) |
ref | gcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
ref | gcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
ref | gcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |
ref | gcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.3.0) |