Implementation notes: x86, titan0, crypto_core/multsntrup857

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: multsntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
30968avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
31000avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
38944avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
39064avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
45880avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
46252avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
47628avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
48224avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
280572refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073120190729
283260refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073120190729
307676refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
311148refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073120190729
311464refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073120190729
321548refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073120190729
322500refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073120190729
337296refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
906684refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
907220refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
919504refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
933136refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
936656refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
936744refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
937792refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
939364refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073120190729
940644refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
942556refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
944808refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
946008refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
947356refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
952264refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
953816refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
954916refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
955792refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
956436refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
964240refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
966228refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073120190729
968484refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
968712refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
969636refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
970276refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
972568refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
973736refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
977600refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
978312refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
980064refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
982864refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
987784refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
988496refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
988892refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
992040refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
992996refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
993492refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
1223240refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
1223260refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
1223548refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
1247752refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073120190729
1248156refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
1249656refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
1249992refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
1253112refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
1255372refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
1255596refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
1257692refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
1259868refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
1271808refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
1280348refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
1345048refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
1345768refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
1351152refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
1352816refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
1365880refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
1366784refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073120190729
1366868refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073120190729
1366988refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
1367384refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073120190729
1368340refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073120190729
1368656refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073120190729
1369588refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073120190729
1370420refgcc -m32 -O3 -fomit-frame-pointer2019073120190729
1372700refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
1374176refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
1375008refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
1375056refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
1375592refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
1375592refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
1375868refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
1376988refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
1379148refgcc -m32 -O2 -fomit-frame-pointer2019073120190729
1388300refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073120190729
1388300refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073120190729
1388336refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073120190729
1388380refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073120190729
1388384refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073120190729
1388388refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073120190729
1389296refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
1389940refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
1389956refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
1391248refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
1391760refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
1391944refgcc -m32 -O -fomit-frame-pointer2019073120190729
1392020refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
1392900refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
1393852refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
1394824refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
1395688refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
1395960refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
1396228refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
1396528refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
1400364refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
1400816refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
1401136refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
1405220refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
1406288refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
1407148refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
1407604refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
1410088refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
1410276refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
1410516refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
1411380refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
1411600refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
1412524refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
1412720refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
1413844refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
1414276refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
1414476refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
1414732refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
1414868refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
1415284refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
1415308refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
1415796refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
1416648refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
1417852refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
1418372refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
1422756refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
1430176refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
1431592refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
1452744refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073120190729
1456160refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073120190729
1456760refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073120190729
1457744refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
1458236refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
1459280refgcc -m32 -Os -fomit-frame-pointer2019073120190729
1459676refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
1459888refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
1459932refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
1460608refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
1464472refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
1464884refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073120190729
1466496refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
1466912refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
1467320refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
1467476refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073120190729
1468120refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
1468600refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073120190729
1469848refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
1487540refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
1487668refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
1488492refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
1489084refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
1489216refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
1490896refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
1491404refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
1492244refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
1492744refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
1494420refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
1494844refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
1494948refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
1496200refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
1559804refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073120190729
1560396refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
1560484refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
1560780refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
1560900refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
1561760refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
1597328refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
1623448refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
1807248refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
1813452refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
1814392refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
1814536refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
1828548refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
1828812refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
1828904refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
1829644refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729

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