Implementation notes: x86, samba, crypto_core/mult3sntrup857

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: mult3sntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
12947avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
12962avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
24039avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
24044avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
27611avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
27640avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
29942avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
29951avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
815042refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
823681refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
827701refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
830711refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
845978refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
848129refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
858617refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
862544refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
862974refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
863014refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
903064refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
907829refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
918063refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
919702refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
1214526refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
1223218refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
1225724refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
1225783refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
1225828refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
1226522refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
1226974refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
1235676refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
1273145refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
1319132refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
1344363refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
1360017refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
1360270refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
1362928refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
1363779refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
1402681refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
1403052refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
1403502refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
1413084refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
1419246refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
1472540refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
1473016refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
1509333refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
1509365refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
1516341refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
1521068refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
1523328refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
1526625refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
1533339refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
1533921refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
1537958refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
1554466refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
1560292refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
1561214refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
1563787refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
1565101refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
1625355refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
1628103refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
2193435refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
2193788refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
2194421refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
2202912refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
2204675refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
2208893refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
2212061refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
2212290refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
2218113refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
2218345refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
2218432refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
2219623refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
2224964refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
2226546refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
2384357refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
2393484refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
2393703refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
2396222refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
2397716refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
2397943refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
2397982refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
2399710refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
2511627refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
2511654refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
2511794refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
2512162refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
2531970refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
2533027refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
2534441refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
2534591refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
2534988refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
2539349refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
2539905refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
2546514refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
2547224refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
2547682refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
2565506refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
2565547refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
2567373refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
2567392refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
2573341refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
2576816refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
2586532refgcc -m32 -Os -fomit-frame-pointer2019073020190729
2586713refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
2592313refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
2592393refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
2614117refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
2614282refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
2614323refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
2634610refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
2652335refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
2652387refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
2653048refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
2664593refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
2664649refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
2665955refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
2665988refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
2666395refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
2810455refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
3031416refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
3034262refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
3035831refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
3038167refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
3038530refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
3038613refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
3038643refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
3042877refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
3048857refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
3049329refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
3051667refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
3060711refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
3060918refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
3060984refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
3061022refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
3061028refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
3061181refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
3061450refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
3061549refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
3061931refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
3062708refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
3063955refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
3063996refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
3064067refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
3064234refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
3064442refgcc -m32 -O -fomit-frame-pointer2019073020190729
3066514refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
3069074refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
3069350refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
3087990refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
3089945refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
3099852refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
3103509refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
3129635refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
3139796refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
3142675refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
3142872refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
3142933refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
3143827refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
3145393refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
3259705refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
3259823refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
3259839refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
3260629refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
3263204refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
3266053refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
3266133refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
3266490refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
3317863refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
3318224refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
3327953refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
3328613refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
3369655refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
3369875refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
3370115refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
3371851refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
3371988refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
3372635refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
3381627refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
3381633refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
3381845refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
3886726refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
3897827refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
3898804refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
3989169refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729

Compiler output

Implementation: crypto_core/mult3sntrup857/avx
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
mult1024.c: mult1024.c: In function 'squeeze_3_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(10923)),const_x16(3)));
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(10923)),const_x16(3)));
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/mult3sntrup857/avx
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
mult1024.c: mult1024.c: In function 'squeeze_3_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(10923)),const_x16(3)));
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(10923)),const_x16(3)));
mult1024.c: ...
mult1024.c: mult1024.c: In function 'squeeze_3_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(10923)),const_x16(3)));
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(10923)),const_x16(3)));
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/mult3sntrup857/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_3_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(10923)),const_x16(3)));
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(10923)),const_x16(3)));
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