Implementation notes: x86, titan0, crypto_core/mult3sntrup857

Computer: titan0
Architecture: x86
CPU ID: GenuineIntel-000306c3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: mult3sntrup857
TimeImplementationCompilerBenchmark dateSUPERCOP version
15384avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
15584avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
25472avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
25512avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
27420avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
27456avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
30784avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
30812avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
811424refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
812876refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
813272refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
816540refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073120190729
822088refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
830176refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
830432refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
830944refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
831552refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
834024refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073120190729
850508refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
862064refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
865436refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
874256refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
1148688refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
1152628refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
1153844refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
1153996refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
1154636refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
1157528refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
1157980refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
1162996refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
1354872refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073120190729
1355676refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073120190729
1369256refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073120190729
1370016refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073120190729
1400488refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073120190729
1403824refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073120190729
1404084refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073120190729
1416248refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073120190729
1417340refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073120190729
1419452refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073120190729
1420432refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073120190729
1427272refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073120190729
1433376refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073120190729
1433700refgcc -m32 -O2 -fomit-frame-pointer2019073120190729
1435280refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073120190729
1472012refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073120190729
1472148refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073120190729
1510152refgcc -m32 -O3 -fomit-frame-pointer2019073120190729
1518168refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073120190729
1558564refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073120190729
1568256refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073120190729
1570252refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073120190729
1571560refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073120190729
1574620refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073120190729
1576472refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073120190729
1578836refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073120190729
1579100refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073120190729
1589692refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073120190729
1621428refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073120190729
1645072refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073120190729
2213376refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
2213436refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
2213604refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
2227968refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
2228548refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
2230672refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
2230728refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
2233216refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
2243024refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
2243876refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
2244800refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
2247584refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
2248380refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
2248984refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073120190729
2373888refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073120190729
2377600refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073120190729
2379312refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073120190729
2379324refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073120190729
2388520refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073120190729
2388668refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073120190729
2388820refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073120190729
2389468refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073120190729
2544528refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
2545152refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729
2545160refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
2545164refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
2596556refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
2596608refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
2596652refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
2597824refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
2598068refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
2611704refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073120190729
2612500refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073120190729
2612572refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073120190729
2613060refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073120190729
2613076refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073120190729
2690232refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
2690288refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
2690368refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
2694424refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
2694704refgcc -m32 -Os -fomit-frame-pointer2019073120190729
2695832refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
2696228refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
2698144refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073120190729
2698164refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073120190729
2708808refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073120190729
2709852refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073120190729
2736260refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073120190729
2736320refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073120190729
2747844refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
2748696refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
2748908refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073120190729
2757748refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073120190729
2758088refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073120190729
2762040refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073120190729
2762132refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073120190729
2762392refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073120190729
2762500refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073120190729
2762796refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073120190729
3021388refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
3022540refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
3025764refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
3027476refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
3028724refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
3034272refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
3038068refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
3038420refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
3039896refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
3040088refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
3041404refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
3063452refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
3063488refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
3063528refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
3083360refgcc -m32 -O -fomit-frame-pointer2019073120190729
3083580refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073120190729
3083592refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073120190729
3083596refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073120190729
3083624refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073120190729
3083676refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073120190729
3083816refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073120190729
3083984refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073120190729
3084148refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073120190729
3085368refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073120190729
3085704refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073120190729
3087072refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073120190729
3087776refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073120190729
3087924refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073120190729
3088904refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073120190729
3115236refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073120190729
3120172refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073120190729
3122636refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073120190729
3126596refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073120190729
3127916refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073120190729
3130004refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073120190729
3140292refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073120190729
3141436refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073120190729
3141624refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073120190729
3142180refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073120190729
3142252refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073120190729
3288776refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
3289576refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
3289648refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
3289688refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
3289916refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073120190729
3289932refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073120190729
3290292refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073120190729
3290572refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073120190729
3372056refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073120190729
3372236refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073120190729
3372556refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073120190729
3409548refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073120190729
3410048refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073120190729
3426344refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073120190729
3426424refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073120190729
3468152refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073120190729
3468348refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073120190729
3469996refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073120190729
3485300refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073120190729
3485652refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073120190729
3486944refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073120190729
3844244refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073120190729
3844296refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073120190729
3844312refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073120190729
3844460refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073120190729

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