Implementation notes: x86, samba, crypto_core/invsntrup653

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup653
TimeImplementationCompilerBenchmark dateSUPERCOP version
551843avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
557216avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
567300avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
573609avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
574299avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
574629avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
618863avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
632306avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
4418683refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
4418704refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
6742050refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
6748018refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
6783357refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
6783805refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
6840329refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
8738799refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
10424454refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
10447992refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
10487311refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
10610258refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
11098165refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
11171833refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
11201025refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
11208373refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
11288645refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
11292081refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
11310671refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
11323004refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
15988855refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
16156512refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
16403925refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
16408966refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
16413123refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
16704096refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
16845905refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
16852154refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
16857149refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
16951322refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
17720308refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
17741099refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
17770944refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
17847843refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
17851456refgcc -m32 -O -fomit-frame-pointer2019073020190729
17854155refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
17854637refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
17857659refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
17859133refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
17859288refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
17862641refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
17882683refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
17897085refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
17967855refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
17970843refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
17973446refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
18050147refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
18051307refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
18052661refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
18053422refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
18054028refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
18056260refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
18056588refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
18057074refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
18060441refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
18062762refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
18240717refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
18328587refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
18475143refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
18609036refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
18689625refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
18691647refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
18692216refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
18697192refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
18699897refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
18767037refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
18769567refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
18842675refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
18844383refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
18897502refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
19022637refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
19057402refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
19057667refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
19057750refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
19125323refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
19126496refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
19131117refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
19257146refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
19432454refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
19433250refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
19438248refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
19438303refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
19438333refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
19459313refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
19459412refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
19473827refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
19473836refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
19656827refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
20054179refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
20055222refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
20055788refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
20055823refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
20065147refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
20066543refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
20071811refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
20165206refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
20167090refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
20182188refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
20185270refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
20190871refgcc -m32 -Os -fomit-frame-pointer2019073020190729
20192043refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
20193907refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
20226160refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
20604909refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
20606027refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
20607145refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
20607573refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
20618290refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
20619591refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
20621764refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
20622750refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
20623721refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
20623951refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
20624069refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
20845830refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
20942331refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
20985764refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
21036828refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
21040726refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
21043704refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
21043932refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
21044573refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
21200774refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
21201004refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
21305899refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
21337272refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
21476103refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
21487254refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
21491721refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
21687284refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
21687577refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
21688006refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
22116827refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
22457423refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
22659432refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
23080760refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
23082407refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
23083397refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
23262532refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
23808375refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
23824956refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
23837103refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
26168307refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
26169026refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
28951651refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
28963639refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
29637441refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
29639432refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
29901992refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
29902262refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
30037083refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
30039482refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
30606211refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
30606616refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
30681609refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
30683851refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
30731413refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
30739185refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
33570470refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
33581401refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
34330643refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
34331410refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
34910808refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
34912940refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
35235107refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
35279641refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
36324903refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
36368194refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
36507283refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
36509028refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
37829248refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
38405089refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
39063373refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
39144923refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
39228734refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
40031596refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729

Compiler output

Implementation: crypto_core/invsntrup653/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/invsntrup653/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/invsntrup653/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