Implementation notes: x86, titan0, crypto_core/mult3sntrup653

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: mult3sntrup653
TimeImplementationCompilerBenchmark dateSUPERCOP version
9920avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
10104avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
14680avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
14708avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
15864avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
15888avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
26964avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
27244avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
480684refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
482824refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
484224refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073120190729
485848refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
487636refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
489408refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
492232refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073120190729
494816refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
498888refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
501228refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
509496refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
515312refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
515756refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
521220refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
670864refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
673444refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
675460refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
675544refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
676136refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
678592refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
678848refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
686992refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
798264refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
798340refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
807184refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
807220refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
814584refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
815288refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
817052refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
822216refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
826576refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
829792refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
831264refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
833844refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
840688refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
841440refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
844340refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
844696refgcc -m32 -O2 -fomit-frame-pointer2019073120190729
845508refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
886828refgcc -m32 -O3 -fomit-frame-pointer2019073120190729
912060refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073120190729
915496refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073120190729
915816refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073120190729
920472refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073120190729
920928refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073120190729
921388refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073120190729
924004refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073120190729
924440refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073120190729
925200refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073120190729
928632refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073120190729
931192refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073120190729
966120refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073120190729
1282664refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
1282752refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
1284692refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
1284704refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
1285204refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
1296540refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
1297220refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
1298340refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
1298836refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
1298848refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
1299592refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073120190729
1300648refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
1309216refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
1309348refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
1384272refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
1387608refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
1387700refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
1388444refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
1395756refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
1396148refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
1396172refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
1396316refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
1480888refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
1480908refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
1480960refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
1481628refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
1516764refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
1516888refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
1517008refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
1518308refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
1518784refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
1528612refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
1529256refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
1529308refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
1529516refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
1529520refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
1565772refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
1570588refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
1570624refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
1570628refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
1573024refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
1573872refgcc -m32 -Os -fomit-frame-pointer2019073120190729
1575068refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
1576068refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073120190729
1576208refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
1584084refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
1584308refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
1600280refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
1600976refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
1604836refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073120190729
1605232refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
1605360refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
1605564refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073120190729
1612436refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073120190729
1614756refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073120190729
1615928refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
1616056refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
1616140refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073120190729
1616200refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073120190729
1750212refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
1750260refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
1751016refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
1751300refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
1755088refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
1755852refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
1760148refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
1760464refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
1765940refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
1766028refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
1766652refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
1784076refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
1784228refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
1784332refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
1788900refgcc -m32 -O -fomit-frame-pointer2019073120190729
1788932refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
1789148refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073120190729
1789208refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073120190729
1789236refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073120190729
1789468refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073120190729
1789516refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
1789556refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
1790512refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
1790668refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073120190729
1790908refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073120190729
1791676refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
1792176refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
1792240refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
1792248refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
1805780refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
1807296refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
1814624refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
1817540refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
1822724refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
1825020refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
1832796refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
1833032refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
1833052refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
1833596refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
1833600refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
1916416refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
1916624refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
1916836refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
1916972refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
1916984refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
1917000refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
1917348refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
1918188refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
1964760refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
1964792refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
1965108refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
1974560refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
1974764refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
1986884refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
1987104refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
2019508refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
2019532refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
2020476refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
2031984refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
2032376refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
2032392refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
2240580refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
2240732refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
2241616refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
2241816refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729

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