Implementation notes: x86, samba, crypto_core/multsntrup857

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: multsntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
25630avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
25665avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
33524avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
33737avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
43306avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
43581avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
47172avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
47843avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
274236refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
274276refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
279348refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
279446refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
290986refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
291352refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
291445refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
311920refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
891041refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
891048refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
939718refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
947536refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
948411refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
953734refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
955238refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
958482refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
958563refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
963663refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
964286refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
969972refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
974623refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
979756refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
982083refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
982695refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
983138refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
989194refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
992007refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
992008refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
993921refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
996160refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
996804refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
998633refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
1003851refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
1004445refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
1008030refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
1011117refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
1011553refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
1012127refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
1014964refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
1034961refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
1035927refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
1036595refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
1037091refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
1039558refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
1198789refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
1200427refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
1202484refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
1219099refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
1246048refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
1246867refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
1248002refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
1251510refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
1252747refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
1255428refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
1256710refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
1257263refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
1266183refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
1268851refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
1309399refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
1310095refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
1318069refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
1318863refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
1328705refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
1330865refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
1434994refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
1454542refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
1461848refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
1463307refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
1465012refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
1475500refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
1484073refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
1502857refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
1515053refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
1515693refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
1516156refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
1516174refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
1516861refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
1516909refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
1516952refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
1517069refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
1517095refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
1517149refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
1517643refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
1517682refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
1517732refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
1518319refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
1518353refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
1518996refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
1519044refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
1519403refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
1520087refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
1520572refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
1520895refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
1521565refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
1521780refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
1521788refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
1522450refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
1522452refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
1524222refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
1524849refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
1524851refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
1524909refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
1524928refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
1524963refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
1525037refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
1525063refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
1525073refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
1525073refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
1525077refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
1528177refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
1528424refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
1528435refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
1528901refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
1529030refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
1529498refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
1529685refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
1529772refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
1529986refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
1532115refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
1532518refgcc -m32 -Os -fomit-frame-pointer2019073020190729
1532786refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
1532962refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
1533129refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
1533808refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
1533884refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
1534218refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
1534274refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
1534681refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
1535033refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
1535200refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
1535556refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
1537545refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
1537573refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
1538216refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
1538941refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
1539366refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
1539669refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
1539794refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
1539960refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
1540304refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
1541123refgcc -m32 -O -fomit-frame-pointer2019073020190729
1541160refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
1541190refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
1541377refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
1541646refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
1541772refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
1541987refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
1542018refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
1542818refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
1546041refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
1547098refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
1547673refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
1550165refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
1550284refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
1550643refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
1550756refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
1551570refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
1551875refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
1552322refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
1553502refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
1554583refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
1554871refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
1556125refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
1557910refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
1606684refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
1606734refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
1625381refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
1625416refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
1640006refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
1649276refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
1650508refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
1651131refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
1653391refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
1655074refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
1655973refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
1658532refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729

Compiler output

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