Implementation notes: x86, titan0, crypto_core/invsntrup857

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
1115600avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
1138528avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
1143204avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
1185756avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
1189828avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
1217060avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
1273628avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
1276272avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
8585816refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
8638212refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
13802240refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073120190729
13806568refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073120190729
14042956refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073120190729
14069200refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073120190729
14124612refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073120190729
18778292refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073120190729
19980120refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
20307500refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
20390972refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
20528256refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
20529300refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
20543004refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
20571084refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
20593052refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
20594088refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
20594260refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
20622636refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
20625804refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
28875860refgcc -m32 -O3 -fomit-frame-pointer2019073120190729
30801164refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073120190729
31023348refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
32353616refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
32360944refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
32363328refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
32781192refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
32821212refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
33032244refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073120190729
33033024refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073120190729
33127828refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073120190729
33136660refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
33332648refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
33370900refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073120190729
33470488refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073120190729
33473260refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073120190729
33477220refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073120190729
33492320refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073120190729
33495668refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073120190729
33496724refgcc -m32 -O -fomit-frame-pointer2019073120190729
33555364refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073120190729
33696792refgcc -m32 -O2 -fomit-frame-pointer2019073120190729
33801100refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
33843720refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
33863864refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073120190729
33943100refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
33966472refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
34008164refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
34013076refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
34032208refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
34037244refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
34070928refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
34124644refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073120190729
34160900refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
34252404refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073120190729
34363192refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
34422044refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
34599736refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
34797048refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
34918160refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
34922364refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
34978752refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
35088836refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
35101004refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073120190729
35250924refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
35272376refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
35397748refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
35407136refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
35410136refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
35443092refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
36033880refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
36078104refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
36163196refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
36365776refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
36855912refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
36889204refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
36889816refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
37157948refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073120190729
37176128refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073120190729
37178116refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073120190729
37242344refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
37260092refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
37295068refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
37327016refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
37481792refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
37493828refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
37494444refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
37504716refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073120190729
37538928refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073120190729
37539260refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
37621068refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
37628524refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
37629444refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
37631128refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
37665496refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
37675348refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
37687804refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
37694420refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073120190729
37694584refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
37903604refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
37912356refgcc -m32 -Os -fomit-frame-pointer2019073120190729
37930892refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
37942140refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
37947040refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
38031860refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
38062712refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
38097904refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
38165848refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
38215352refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
38346464refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
38461080refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
38719016refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
38811560refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
38811848refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
38817672refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
38832296refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
39145028refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
39293084refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
39346000refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
39444532refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
40076592refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
40090868refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
40501276refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
41005752refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
41050936refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
41051340refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
41059176refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
41084940refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073120190729
41091792refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
41266816refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
41271992refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
41306532refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
41316664refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
41333096refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
41354976refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
41467636refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
41493744refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
42151488refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
42276472refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
42281216refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
42302924refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
46501440refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
46539076refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
46544660refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
55109980refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
55120248refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
56563576refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
56568728refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
57129840refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
57194932refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
57464312refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
57882816refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
57944384refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
58000864refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
58105380refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
58409252refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
58893196refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
58893952refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
61764656refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
61765896refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
62933036refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
62948724refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
63548876refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
63650284refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
65938148refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
65981044refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
66405872refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
66478012refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
66522224refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
66562144refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
67994500refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
68153432refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
72421684refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
72682508refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
72737488refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
73847848refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073120190729

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