Implementation notes: x86, samba, crypto_core/invsntrup857

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
939532avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
939911avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
940488avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
949990avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
966768avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
976389avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
1036383avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
1041456avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
7289063refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
7291554refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
11422696refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
11426289refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
11594073refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
11595015refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
11602845refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
15351006refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
17615577refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
17643883refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
17644645refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
17666524refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
17690280refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
17693109refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
17693726refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
17695558refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
17706526refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
17717823refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
17766911refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
17769345refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
27579451refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
27641282refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
28145454refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
28145645refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
28148982refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
28918695refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
28937805refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
29019722refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
29628190refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
29799441refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
29802274refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
29969256refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
30423538refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
30478678refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
30547921refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
30593178refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
30604544refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
30608040refgcc -m32 -O -fomit-frame-pointer2019073020190729
30619556refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
30620238refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
30620252refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
30620959refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
30621125refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
30622240refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
30664123refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
30783863refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
30788629refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
30800413refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
30943032refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
30943171refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
30943988refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
30944018refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
30944967refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
30952762refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
30953071refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
30961416refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
30961445refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
31010975refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
31217985refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
31420030refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
31535895refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
31591572refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
31843778refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
31934728refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
31941369refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
31974576refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
32068472refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
32082776refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
32218514refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
32224742refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
32225160refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
32227504refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
32230073refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
32247339refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
32333226refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
32391153refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
32412407refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
32526160refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
32526454refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
32563746refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
33010093refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
33151004refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
33287821refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
33289855refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
33395222refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
33395468refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
33405845refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
33407859refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
33425407refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
33425609refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
33431170refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
33431357refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
33432371refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
33433056refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
33435530refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
33445998refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
33625278refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
33711437refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
33943907refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
33944563refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
34330978refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
34334498refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
34334875refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
34384720refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
34413125refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
34430065refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
34439577refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
34506817refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
34512450refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
34517240refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
34649912refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
34650000refgcc -m32 -Os -fomit-frame-pointer2019073020190729
34659282refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
34803567refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
35047069refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
35048155refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
35528187refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
35610784refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
35613356refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
35615290refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
35692768refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
36123601refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
36125218refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
36129655refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
36432239refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
36501027refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
36501821refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
36812422refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
36844484refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
36845476refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
36846564refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
37147621refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
37152762refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
37240195refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
37246927refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
37357625refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
37411758refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
37426453refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
39689956refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
39691055refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
39692347refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
41547783refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
41561827refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
41602970refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
47600171refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
47601189refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
48960287refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
48960405refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
50646589refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
50649306refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
50676004refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
50683082refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
50787059refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
51420101refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
52357026refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
52357094refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
55406500refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
55411323refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
56904300refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
56918492refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
58477265refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
58478772refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
59228244refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
59314752refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
60743522refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
61156556refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
61341752refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
61455270refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
61465887refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
61832764refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
62491329refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
64373498refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
67073347refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
67090359refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
67921224refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
69813143refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729

Compiler output

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