Implementation notes: x86, samba, crypto_core/multsntrup653

Computer: samba
Architecture: x86
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20190803
Operation: crypto_core
Primitive: multsntrup653
TimeImplementationCompilerBenchmark dateSUPERCOP version
16633avxgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
16669avxgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
18627avxgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
18639avxgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
18641avxgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
18662avxgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
22801avxgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
22889avxgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
161881refgcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer2019073020190729
162107refgcc -m32 -march=core-avx2 -O3 -fomit-frame-pointer2019073020190729
177552refgcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer2019073020190729
177720refgcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer2019073020190729
185158refgcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2019073020190729
186930refgcc -m32 -march=corei7 -O3 -fomit-frame-pointer2019073020190729
187306refgcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer2019073020190729
193776refgcc -m32 -march=core2 -O3 -fomit-frame-pointer2019073020190729
529847refgcc -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
530159refgcc -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
559409refgcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
560609refgcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
562258refgcc -funroll-loops -m32 -O3 -fomit-frame-pointer2019073020190729
562521refgcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
563812refgcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
564201refgcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
571986refgcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
575928refgcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
578964refgcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
581275refgcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
581740refgcc -funroll-loops -m32 -O2 -fomit-frame-pointer2019073020190729
585732refgcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
586404refgcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
587429refgcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
588694refgcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
589447refgcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
593184refgcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
594437refgcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
595317refgcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
595827refgcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
596149refgcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
596432refgcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
597093refgcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
597350refgcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
597655refgcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
597776refgcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
600832refgcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
603897refgcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
604609refgcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
604891refgcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
605489refgcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
608895refgcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
608901refgcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
611036refgcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
704581refgcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
706059refgcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
706319refgcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
706774refgcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
706918refgcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
707286refgcc -funroll-loops -m32 -O -fomit-frame-pointer2019073020190729
709076refgcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
710316refgcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
710795refgcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
711810refgcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
711831refgcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
713814refgcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
726710refgcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
727953refgcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
736647refgcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
736858refgcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
763742refgcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer2019073020190729
763760refgcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer2019073020190729
772720refgcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
772994refgcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
843670refgcc -m32 -march=core2 -O2 -fomit-frame-pointer2019073020190729
860661refgcc -m32 -march=prescott -O3 -fomit-frame-pointer2019073020190729
878984refgcc -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
883194refgcc -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
888887refgcc -m32 -march=core-avx2 -O2 -fomit-frame-pointer2019073020190729
888897refgcc -m32 -march=barcelona -O3 -fomit-frame-pointer2019073020190729
889046refgcc -m32 -march=k8 -O2 -fomit-frame-pointer2019073020190729
889244refgcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer2019073020190729
889550refgcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer2019073020190729
889553refgcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2019073020190729
889595refgcc -m32 -O2 -fomit-frame-pointer2019073020190729
890080refgcc -m32 -O3 -fomit-frame-pointer2019073020190729
890121refgcc -m32 -march=corei7 -O2 -fomit-frame-pointer2019073020190729
890300refgcc -m32 -march=barcelona -O2 -fomit-frame-pointer2019073020190729
890472refgcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer2019073020190729
890522refgcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer2019073020190729
892095refgcc -m32 -march=pentium-m -O3 -fomit-frame-pointer2019073020190729
892417refgcc -m32 -march=athlon -O3 -fomit-frame-pointer2019073020190729
892674refgcc -m32 -march=k8 -O3 -fomit-frame-pointer2019073020190729
893179refgcc -m32 -march=k6-2 -O2 -fomit-frame-pointer2019073020190729
893185refgcc -m32 -march=k6 -O2 -fomit-frame-pointer2019073020190729
893276refgcc -m32 -march=k6-3 -O2 -fomit-frame-pointer2019073020190729
894679refgcc -m32 -march=athlon -O2 -fomit-frame-pointer2019073020190729
895280refgcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer2019073020190729
895494refgcc -m32 -march=pentium4 -O3 -fomit-frame-pointer2019073020190729
895575refgcc -m32 -march=pentium2 -O3 -fomit-frame-pointer2019073020190729
895682refgcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer2019073020190729
895687refgcc -m32 -march=pentium3 -O3 -fomit-frame-pointer2019073020190729
895754refgcc -m32 -march=corei7 -O -fomit-frame-pointer2019073020190729
895836refgcc -m32 -march=core-avx-i -O -fomit-frame-pointer2019073020190729
896093refgcc -m32 -march=core2 -O -fomit-frame-pointer2019073020190729
896169refgcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer2019073020190729
896246refgcc -m32 -march=corei7-avx -O -fomit-frame-pointer2019073020190729
896322refgcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer2019073020190729
896373refgcc -m32 -march=pentium3 -O2 -fomit-frame-pointer2019073020190729
896789refgcc -m32 -march=k8 -O -fomit-frame-pointer2019073020190729
896931refgcc -m32 -march=pentium2 -O2 -fomit-frame-pointer2019073020190729
897311refgcc -m32 -march=k6 -O3 -fomit-frame-pointer2019073020190729
897696refgcc -m32 -march=native -mtune=native -O -fomit-frame-pointer2019073020190729
897722refgcc -m32 -march=pentium4 -O2 -fomit-frame-pointer2019073020190729
897732refgcc -m32 -march=core-avx2 -O -fomit-frame-pointer2019073020190729
897899refgcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
898082refgcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
898097refgcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer2019073020190729
898115refgcc -m32 -Os -fomit-frame-pointer2019073020190729
898147refgcc -m32 -march=corei7 -Os -fomit-frame-pointer2019073020190729
898156refgcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer2019073020190729
898671refgcc -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
899155refgcc -m32 -march=athlon -O -fomit-frame-pointer2019073020190729
899647refgcc -m32 -march=pentium-m -O2 -fomit-frame-pointer2019073020190729
899829refgcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
899849refgcc -m32 -march=core-avx2 -Os -fomit-frame-pointer2019073020190729
899968refgcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer2019073020190729
900049refgcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
900802refgcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
900805refgcc -m32 -march=barcelona -O -fomit-frame-pointer2019073020190729
901151refgcc -m32 -march=nocona -O3 -fomit-frame-pointer2019073020190729
901398refgcc -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
901584refgcc -m32 -march=pentiumpro -O -fomit-frame-pointer2019073020190729
901609refgcc -m32 -march=k6 -O -fomit-frame-pointer2019073020190729
902145refgcc -m32 -march=k6-3 -O -fomit-frame-pointer2019073020190729
902225refgcc -m32 -march=pentium2 -O -fomit-frame-pointer2019073020190729
902254refgcc -m32 -march=k6-2 -O -fomit-frame-pointer2019073020190729
902649refgcc -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
903900refgcc -m32 -O -fomit-frame-pointer2019073020190729
904046refgcc -m32 -march=pentium-m -O -fomit-frame-pointer2019073020190729
904125refgcc -m32 -march=pentium3 -O -fomit-frame-pointer2019073020190729
904430refgcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer2019073020190729
904522refgcc -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
904534refgcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer2019073020190729
904794refgcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer2019073020190729
904851refgcc -m32 -march=pentium4 -O -fomit-frame-pointer2019073020190729
905057refgcc -m32 -march=k8 -Os -fomit-frame-pointer2019073020190729
905667refgcc -funroll-loops -m32 -Os -fomit-frame-pointer2019073020190729
905802refgcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer2019073020190729
906996refgcc -m32 -march=core2 -Os -fomit-frame-pointer2019073020190729
907059refgcc -m32 -march=prescott -Os -fomit-frame-pointer2019073020190729
907157refgcc -m32 -march=pentium4 -Os -fomit-frame-pointer2019073020190729
907244refgcc -m32 -march=nocona -Os -fomit-frame-pointer2019073020190729
908119refgcc -m32 -march=barcelona -Os -fomit-frame-pointer2019073020190729
913494refgcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer2019073020190729
914657refgcc -m32 -march=nocona -O -fomit-frame-pointer2019073020190729
914672refgcc -m32 -march=prescott -O -fomit-frame-pointer2019073020190729
915425refgcc -m32 -march=i486 -O3 -fomit-frame-pointer2019073020190729
915561refgcc -m32 -march=i386 -O3 -fomit-frame-pointer2019073020190729
916355refgcc -m32 -march=i386 -O2 -fomit-frame-pointer2019073020190729
917042refgcc -m32 -march=pentium -O3 -fomit-frame-pointer2019073020190729
918563refgcc -m32 -march=i486 -O2 -fomit-frame-pointer2019073020190729
919016refgcc -m32 -march=i386 -O -fomit-frame-pointer2019073020190729
919306refgcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
919728refgcc -m32 -march=pentium -O2 -fomit-frame-pointer2019073020190729
920089refgcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer2019073020190729
920157refgcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer2019073020190729
921453refgcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
922792refgcc -m32 -march=pentium -O -fomit-frame-pointer2019073020190729
923270refgcc -m32 -march=i486 -O -fomit-frame-pointer2019073020190729
925080refgcc -m32 -march=nocona -O2 -fomit-frame-pointer2019073020190729
925710refgcc -m32 -march=prescott -O2 -fomit-frame-pointer2019073020190729
926195refgcc -m32 -march=pentium-mmx -O -fomit-frame-pointer2019073020190729
933542refgcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer2019073020190729
950741refgcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer2019073020190729
955972refgcc -m32 -march=pentium -Os -fomit-frame-pointer2019073020190729
957184refgcc -m32 -march=core-avx-i -Os -fomit-frame-pointer2019073020190729
957285refgcc -m32 -march=corei7-avx -Os -fomit-frame-pointer2019073020190729
971734refgcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
974190refgcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
980107refgcc -m32 -march=pentium-m -Os -fomit-frame-pointer2019073020190729
980528refgcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
981309refgcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729
981325refgcc -m32 -march=pentium2 -Os -fomit-frame-pointer2019073020190729
984162refgcc -m32 -march=pentiumpro -Os -fomit-frame-pointer2019073020190729
984932refgcc -m32 -march=pentium3 -Os -fomit-frame-pointer2019073020190729

Compiler output

Implementation: crypto_core/multsntrup653/avx
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
mult768.c: mult768.c: In function 'squeeze_4621_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(7)),const_x16(4621)));
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(7)),const_x16(4621)));
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/multsntrup653/avx
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
mult768.c: mult768.c: In function 'squeeze_4621_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(7)),const_x16(4621)));
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(7)),const_x16(4621)));
mult768.c: ...
mult768.c: mult768.c: In function 'squeeze_4621_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(7)),const_x16(4621)));
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(7)),const_x16(4621)));
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/multsntrup653/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_4621_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(7)),const_x16(4621)));
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(7)),const_x16(4621)));
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