Implementation notes: x86, titan0, crypto_core/invsntrup761

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: invsntrup761
TimeImplementationCompilerBenchmark dateSUPERCOP version
841196avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
880764avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
890160avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
899356avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
924952avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
931088avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
1038260avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
1076756avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
6802592refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
6811872refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
10902044refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073120190729
10957332refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073120190729
11097456refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073120190729
11137800refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073120190729
11150892refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073120190729
12737660refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073120190729
13263804refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
13370712refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
13458860refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
13463364refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
15409420refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
15454988refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
15488588refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
15494916refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
15497812refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
15524264refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
15600508refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
15602324refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
22784148refgcc -m32 -O3 -fomit-frame-pointer2019073120190729
24020816refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
24912364refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
24920196refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
24931036refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
25225704refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073120190729
25866952refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
25870444refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
25976432refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073120190729
25989144refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073120190729
26114092refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
26140500refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
26153440refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073120190729
26202760refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
26418944refgcc -m32 -O -fomit-frame-pointer2019073120190729
26421844refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
26422288refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073120190729
26452588refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073120190729
26452988refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073120190729
26463984refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073120190729
26474044refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073120190729
26507448refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073120190729
26517000refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
26547724refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
26551556refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073120190729
26553368refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073120190729
26585848refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
26602724refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073120190729
26735392refgcc -m32 -O2 -fomit-frame-pointer2019073120190729
26757956refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
26842324refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
26897456refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
26911676refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
26920764refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
26931156refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
26958944refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073120190729
27012796refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
27038868refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
27076160refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
27161636refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
27342528refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
27528052refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
27548240refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
27549412refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
27570372refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
27570448refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
27599336refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
27608600refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
27685952refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073120190729
27701140refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
28300224refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
28424720refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
28876144refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
28944964refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
28947500refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
28981836refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
29115684refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
29131512refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
29190076refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
29310140refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073120190729
29319656refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073120190729
29354928refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073120190729
29376656refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
29386828refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
29391272refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
29401688refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
29426732refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
29431640refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
29444924refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
29520968refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073120190729
29537096refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073120190729
29581200refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
29584584refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
29587480refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
29667716refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
29684364refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
29684920refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
29721348refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
29755476refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073120190729
29757084refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
29890300refgcc -m32 -Os -fomit-frame-pointer2019073120190729
29911248refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
30116680refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
30128600refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
30152024refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
30160596refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
30228616refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
30251428refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
30403148refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
30461836refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
30496624refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
30526912refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
30783508refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
30829596refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
30847616refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
31007312refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
31639596refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
31640936refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
31646180refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
31944304refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
32378120refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073120190729
32388008refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
32396416refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
32400984refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
32404576refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
32499536refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
32503396refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
32573280refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
32576568refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
32576592refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
32640968refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
32706276refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
32710676refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
32943512refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
33370036refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
33379760refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
33882608refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
36593136refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
36597196refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
36645792refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
43587436refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
43587908refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
44182184refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
44316096refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
45772248refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
45778460refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
45938504refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
45950052refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
45967004refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
45998924refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
46004372refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
46005108refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
47154964refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
47179920refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
48659472refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
48676872refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
50297656refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
50307004refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
50509644refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
51826808refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
53034484refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
53097336refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
53230304refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
53311532refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
53319360refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
53357544refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
55505240refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
55570512refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
55660028refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
55933884refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
56478248refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
57288148refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
57848348refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
58496172refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
58505200refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
58680468refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073120190729

Compiler output

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

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

Compiler output

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

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

Compiler output

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

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