Implementation notes: x86, samba, crypto_core/mult3sntrup653

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: mult3sntrup653
TimeImplementationCompilerBenchmark dateSUPERCOP version
8317avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
8333avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
12750avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
12805avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
14889avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
14910avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
24621avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
24784avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
481694refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
483764refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
487466refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
489691refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
507742refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
513002refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
513318refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
513454refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
527198refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
528563refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
533240refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
543998refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
544464refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
546678refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
706784refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
709180refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
709617refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
709889refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
712921refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
714337refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
714478refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
716283refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
750044refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
777839refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
780498refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
791369refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
798329refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
800500refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
806998refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
807165refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
807230refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
825018refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
832371refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
860885refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
864111refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
880555refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
880583refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
886908refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
888506refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
890682refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
891058refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
891252refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
891542refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
894720refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
896256refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
896798refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
915986refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
917158refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
917387refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
920430refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
921300refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
953458refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
1268229refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
1268738refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
1269012refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
1269017refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
1269887refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
1284049refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
1285121refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
1286235refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
1286390refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
1286422refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
1286793refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
1287000refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
1294986refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
1296197refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
1387379refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
1393759refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
1393778refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
1393867refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
1397411refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
1397494refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
1397562refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
1397774refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
1461182refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
1461333refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
1461367refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
1461621refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
1478472refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
1478966refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
1479456refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
1479587refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
1479613refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
1485190refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
1486171refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
1488882refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
1489371refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
1489750refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
1497549refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
1498093refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
1498607refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
1498619refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
1504756refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
1506139refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
1511946refgcc -m32 -Os -fomit-frame-pointer2019073020190729
1512123refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
1515901refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
1516020refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
1526534refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
1526641refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
1527117refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
1537320refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
1537544refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
1549970refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
1550089refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
1550244refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
1556851refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
1556975refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
1557967refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
1558099refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
1558550refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
1746970refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
1747039refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
1748260refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
1750824refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
1756943refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
1757071refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
1757565refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
1762473refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
1762851refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
1763086refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
1763324refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
1771548refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
1771578refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
1771619refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
1771668refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
1771911refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
1772160refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
1772931refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
1772943refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
1773426refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
1773645refgcc -m32 -O -fomit-frame-pointer2019073020190729
1773863refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
1774268refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
1775586refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
1775627refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
1775667refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
1782486refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
1782518refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
1782535refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
1784895refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
1785859refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
1794490refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
1795163refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
1823534refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
1831256refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
1832667refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
1833518refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
1833550refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
1834201refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
1834237refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
1899563refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
1899643refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
1899774refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
1900324refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
1901127refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
1903219refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
1903224refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
1903808refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
1918893refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
1918941refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
1920957refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
1921063refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
1962726refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
1962839refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
1962861refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
1962871refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
1964972refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
1969738refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
1970954refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
1971646refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
1971672refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
2266547refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
2321149refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
2323724refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
2324105refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729

Compiler output

Implementation: crypto_core/mult3sntrup653/avx
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
mult768.c: mult768.c: In function 'squeeze_3_x16':
mult768.c: mult768.c:19:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
mult768.c: {
mult768.c: ^
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.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
mult768.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ^~~~~~~
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:553:1: error: inlining failed in call to always_inline '_mm256_mullo_epi16': target specific option mismatch
mult768.c: _mm256_mullo_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.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/mult3sntrup653/avx
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
mult768.c: mult768.c: In function 'squeeze_3_x16':
mult768.c: mult768.c:19:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
mult768.c: {
mult768.c: ^
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.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
mult768.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ^~~~~~~
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:553:1: error: inlining failed in call to always_inline '_mm256_mullo_epi16': target specific option mismatch
mult768.c: _mm256_mullo_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ...
mult768.c: mult768.c: In function 'squeeze_3_x16':
mult768.c: mult768.c:19:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
mult768.c: {
mult768.c: ^
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.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
mult768.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ^~~~~~~
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:553:1: error: inlining failed in call to always_inline '_mm256_mullo_epi16': target specific option mismatch
mult768.c: _mm256_mullo_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.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/mult3sntrup653/avx
Compiler: gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.c: mult768.c: In function 'squeeze_3_x16':
mult768.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
mult768.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ^~~~~~~
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:553:1: error: inlining failed in call to always_inline '_mm256_mullo_epi16': target specific option mismatch
mult768.c: _mm256_mullo_epi16 (__m256i __A, __m256i __B)
mult768.c: ^~~~~~~~~~~~~~~~~~
mult768.c: mult768.c:12:17: note: called from here
mult768.c: #define sub_x16 _mm256_sub_epi16
mult768.c: ^
mult768.c: mult768.c:20:10: note: in expansion of macro 'sub_x16'
mult768.c: return sub_x16(x,mullo_x16(mulhrs_x16(x,const_x16(10923)),const_x16(3)));
mult768.c: ^~~~~~~
mult768.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
mult768.c: from mult768.c:2:
mult768.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