Implementation notes: x86, titan0, crypto_core/invsntrup653

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup653
TimeImplementationCompilerBenchmark dateSUPERCOP version
639404avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
662284avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
685396avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
686440avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
703212avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
711076avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
768760avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
801436avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
5198228refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
5231708refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
8184468refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
8232256refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
8286592refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
8291276refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
8306504refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
10222348refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
11173864refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
11316452refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
11345468refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
11454528refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
12479444refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
12618532refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
12641512refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
12719548refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
12732912refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
12737152refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
12754664refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
12782212refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
16937324refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
17864676refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
18338372refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
18438720refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
18443536refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
18447832refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
19200692refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
19238656refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
19241572refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
19284300refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
19342396refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
19345172refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
19388852refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
19466400refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
19467292refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
19467956refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
19468608refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
19483724refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
19494060refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
19537808refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
19562548refgcc -m32 -O -fomit-frame-pointer2019073020190729
19564992refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
19618552refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
19676008refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
19767576refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
19792776refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
19823832refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
19827080refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
19845324refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
19877252refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
19911340refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
19911828refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
19932896refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
19945632refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
19949648refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
19991980refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
20009412refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
20061320refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
20161052refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
20209060refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
20263808refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
20323160refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
20370384refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
20405208refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
20415708refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
20416272refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
20423824refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
20444100refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
20781900refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
20997796refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
21273124refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
21377736refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
21400976refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
21416972refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
21432976refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
21436676refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
21442068refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
21641336refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
21641376refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
21664176refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
21715568refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
21718120refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
21781252refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
21801808refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
21802064refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
21803656refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
21807356refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
21829232refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
21829676refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
21834396refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
21840728refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
21875368refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
21947008refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
21950076refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
21955400refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
21985508refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
21988076refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
21995048refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
22098788refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
22102776refgcc -m32 -Os -fomit-frame-pointer2019073020190729
22193840refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
22202944refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
22203472refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
22227996refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
22314252refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
22379864refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
22531212refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
22550808refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
22688736refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
22755432refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
22766312refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
22794588refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
22803852refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
23366292refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
23367092refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
23367584refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
23560432refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
23599620refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
23913508refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
23919048refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
23928144refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
23939204refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
23942892refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
23946052refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
23992740refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
24008960refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
24024988refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
24129260refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
24152336refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
24234884refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
24378324refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
24466724refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
24526168refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
24651744refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
24651924refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
24657748refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
24908756refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
25318980refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
25956044refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
26508880refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
26519676refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
27056224refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
27059988refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
27066360refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
33112100refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
33113856refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
33476876refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
33484760refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
33726276refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
33727972refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
34092036refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
34106888refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
34529368refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
34954572refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
35198696refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
35233236refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
35593348refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
35597280refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
36284228refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
36328192refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
36926252refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
36935628refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
37386104refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
37412756refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
38409292refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
38445500refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
39332232refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
39345184refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
39370196refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
39383708refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
40171824refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
40182008refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
41316788refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
41355584refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
41501608refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
41512424refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729

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