Implementation notes: x86, samba, crypto_core/invsntrup761

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup761
TimeImplementationCompilerBenchmark dateSUPERCOP version
743540avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
745895avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
749593avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
762609avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
763695avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
763855avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
816314avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
835564avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
5792633refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
5793210refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
9037307refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
9038561refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
9123387refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
9166772refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
9170437refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
12019218refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
12640886refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
12662982refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
12678007refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
12724418refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
13599790refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
13752159refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
13762237refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
13773454refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
13790559refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
13793065refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
13880498refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
13905319refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
21643549refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
21921839refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
22184484refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
22186928refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
22188069refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
22703855refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
22715990refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
22717795refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
22911744refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
22934347refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
23496772refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
23497907refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
23524395refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
23988500refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
24007407refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
24020825refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
24140937refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
24157817refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
24158526refgcc -m32 -O -fomit-frame-pointer2019073020190729
24162454refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
24162540refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
24162698refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
24162869refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
24163883refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
24194183refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
24202925refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
24204383refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
24212994refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
24272050refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
24417490refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
24419137refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
24419198refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
24419629refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
24419828refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
24421017refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
24421228refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
24423365refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
24426331refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
24428129refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
24809312refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
24960554refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
25089514refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
25195557refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
25210976refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
25231782refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
25299978refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
25300359refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
25301218refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
25301679refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
25311591refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
25314301refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
25386631refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
25480875refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
25502246refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
25578796refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
25727054refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
25734222refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
25741806refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
25745336refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
25745441refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
26010648refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
26015549refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
26016468refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
26283732refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
26286484refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
26286851refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
26340613refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
26342309refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
26346744refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
26348369refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
26367413refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
26373690refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
26375729refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
26377319refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
26378095refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
26378752refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
26773728refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
26791949refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
27052835refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
27053447refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
27054369refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
27128523refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
27132278refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
27132321refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
27195691refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
27221976refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
27224432refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
27259780refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
27324186refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
27324283refgcc -m32 -Os -fomit-frame-pointer2019073020190729
27641684refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
27642151refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
27996294refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
28043196refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
28043393refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
28048510refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
28124254refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
28468629refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
28469674refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
28470649refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
28719919refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
28787085refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
28790770refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
29039254refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
29083274refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
29084704refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
29085659refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
29296631refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
29301707refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
29373968refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
29374542refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
29375921refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
29460688refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
29461010refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
31300706refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
31303732refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
31316156refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
32718716refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
32782471refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
32900239refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
38462030refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
39111411refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
39492345refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
39495760refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
39654290refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
39656893refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
40882657refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
40883645refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
41009325refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
41012615refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
41605280refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
41606301refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
43824127refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
43824504refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
44786014refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
44788825refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
46346139refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
46348873refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
47525216refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
47781739refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
47784996refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
47819502refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
48544877refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
48685125refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
49121915refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
49172948refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
49265917refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
50482279refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
50557607refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
51039548refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
51066078refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
51537496refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
53435970refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
53475986refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
54168894refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
55811895refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729

Compiler output

Implementation: crypto_core/invsntrup761/avx
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:808:1: error: inlining failed in call to always_inline '_mm256_sub_epi16': target specific option mismatch
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1325:1: error: inlining failed in call to always_inline '_mm256_set1_epi16': target specific option mismatch
recip.c: _mm256_set1_epi16 (short __A)
recip.c: ^~~~~~~~~~~~~~~~~
recip.c: ...

Number of similar (compiler,implementation) pairs: 156, namely:
CompilerImplementations
gcc -funroll-loops -m32 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer avx
gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer avx
gcc -m32 -O2 -fomit-frame-pointer avx
gcc -m32 -O3 -fomit-frame-pointer avx
gcc -m32 -O -fomit-frame-pointer avx
gcc -m32 -Os -fomit-frame-pointer avx
gcc -m32 -march=athlon -O2 -fomit-frame-pointer avx
gcc -m32 -march=athlon -O3 -fomit-frame-pointer avx
gcc -m32 -march=athlon -O -fomit-frame-pointer avx
gcc -m32 -march=athlon -Os -fomit-frame-pointer avx
gcc -m32 -march=core2 -O2 -fomit-frame-pointer avx
gcc -m32 -march=core2 -O3 -fomit-frame-pointer avx
gcc -m32 -march=core2 -O -fomit-frame-pointer avx
gcc -m32 -march=core2 -Os -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer avx
gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer avx
gcc -m32 -march=corei7 -O2 -fomit-frame-pointer avx
gcc -m32 -march=corei7 -O3 -fomit-frame-pointer avx
gcc -m32 -march=corei7 -O -fomit-frame-pointer avx
gcc -m32 -march=corei7 -Os -fomit-frame-pointer avx
gcc -m32 -march=i386 -O2 -fomit-frame-pointer avx
gcc -m32 -march=i386 -O3 -fomit-frame-pointer avx
gcc -m32 -march=i386 -O -fomit-frame-pointer avx
gcc -m32 -march=i386 -Os -fomit-frame-pointer avx
gcc -m32 -march=i486 -O2 -fomit-frame-pointer avx
gcc -m32 -march=i486 -O3 -fomit-frame-pointer avx
gcc -m32 -march=i486 -O -fomit-frame-pointer avx
gcc -m32 -march=i486 -Os -fomit-frame-pointer avx
gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer avx
gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer avx
gcc -m32 -march=k6-2 -O -fomit-frame-pointer avx
gcc -m32 -march=k6-2 -Os -fomit-frame-pointer avx
gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer avx
gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer avx
gcc -m32 -march=k6-3 -O -fomit-frame-pointer avx
gcc -m32 -march=k6-3 -Os -fomit-frame-pointer avx
gcc -m32 -march=k6 -O2 -fomit-frame-pointer avx
gcc -m32 -march=k6 -O3 -fomit-frame-pointer avx
gcc -m32 -march=k6 -O -fomit-frame-pointer avx
gcc -m32 -march=k6 -Os -fomit-frame-pointer avx
gcc -m32 -march=k8 -O2 -fomit-frame-pointer avx
gcc -m32 -march=k8 -O3 -fomit-frame-pointer avx
gcc -m32 -march=k8 -O -fomit-frame-pointer avx
gcc -m32 -march=k8 -Os -fomit-frame-pointer avx
gcc -m32 -march=nocona -O2 -fomit-frame-pointer avx
gcc -m32 -march=nocona -O3 -fomit-frame-pointer avx
gcc -m32 -march=nocona -O -fomit-frame-pointer avx
gcc -m32 -march=nocona -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium-m -O -fomit-frame-pointer avx
gcc -m32 -march=pentium-m -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer avx
gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium2 -O -fomit-frame-pointer avx
gcc -m32 -march=pentium2 -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium3 -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium3 -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium3 -O -fomit-frame-pointer avx
gcc -m32 -march=pentium3 -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium4 -O -fomit-frame-pointer avx
gcc -m32 -march=pentium4 -Os -fomit-frame-pointer avx
gcc -m32 -march=pentium -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentium -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentium -O -fomit-frame-pointer avx
gcc -m32 -march=pentium -Os -fomit-frame-pointer avx
gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer avx
gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer avx
gcc -m32 -march=pentiumpro -O -fomit-frame-pointer avx
gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer avx
gcc -m32 -march=prescott -O2 -fomit-frame-pointer avx
gcc -m32 -march=prescott -O3 -fomit-frame-pointer avx
gcc -m32 -march=prescott -O -fomit-frame-pointer avx
gcc -m32 -march=prescott -Os -fomit-frame-pointer avx

Compiler output

Implementation: crypto_core/invsntrup761/avx
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:808:1: error: inlining failed in call to always_inline '_mm256_sub_epi16': target specific option mismatch
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1325:1: error: inlining failed in call to always_inline '_mm256_set1_epi16': target specific option mismatch
recip.c: _mm256_set1_epi16 (short __A)
recip.c: ^~~~~~~~~~~~~~~~~
recip.c: ...
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:808:1: error: inlining failed in call to always_inline '_mm256_sub_epi16': target specific option mismatch
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1325:1: error: inlining failed in call to always_inline '_mm256_set1_epi16': target specific option mismatch
recip.c: _mm256_set1_epi16 (short __A)
recip.c: ^~~~~~~~~~~~~~~~~
recip.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m32 -march=barcelona -O2 -fomit-frame-pointer avx
gcc -m32 -march=barcelona -O3 -fomit-frame-pointer avx
gcc -m32 -march=barcelona -O -fomit-frame-pointer avx
gcc -m32 -march=barcelona -Os -fomit-frame-pointer avx

Compiler output

Implementation: crypto_core/invsntrup761/avx
Compiler: gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: recip.c: In function 'montproduct':
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:808:1: error: inlining failed in call to always_inline '_mm256_sub_epi16': target specific option mismatch
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:76:6: note: called from here
recip.c: hi = _mm256_mulhi_epi16(x,y);
recip.c: ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer avx
gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer avx
gcc -m32 -march=core-avx-i -O -fomit-frame-pointer avx
gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer avx
gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer avx
gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer avx
gcc -m32 -march=corei7-avx -O -fomit-frame-pointer avx
gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer avx