Implementation notes: amd64, gpu, crypto_core/invsntrup857

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_core
Primitive: invsntrup857
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
105719552275 0 015480 784 832refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019082220190816
162342682275 0 015576 784 832refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019082220190816
163650302275 0 015576 784 832refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019082220190816
169909762275 0 015576 784 832refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019082220190816
184193312379 0 015624 784 832refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019082220190816
186125872379 0 015472 784 832refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019082220190816
188263642379 0 015560 784 832refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019082220190816
307587523033 0 016264 784 832refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019082220190816
311452708944 0 025288 784 832refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019082220190816
312282296910 0 020496 784 832refgcc_-march=k8_-O3_-fomit-frame-pointer2019082220190816
3137912214028 0 020760 784 832refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082220190816
314308218840 0 025072 784 832refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019082220190816
314353178840 0 025072 784 832refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019082220190816
314986884155 0 019792 784 832refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082220190816
319138683725 0 019128 784 832refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019082220190816
319777922526 0 015840 784 832refgcc_-O3_-fomit-frame-pointer2019082220190816
319790326910 0 020496 784 832refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019082220190816
325163062526 0 015840 784 832refgcc_-m64_-O3_-fomit-frame-pointer2019082220190816
325202913725 0 019128 784 832refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082220190816
326032592526 0 015840 784 832refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082220190816
330214382718 0 015800 784 832refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082220190816
340681088944 0 025288 784 832refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082220190816
344271934155 0 019792 784 832refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082220190816
353021754155 0 019792 784 832refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019082220190816
357694197014 0 020760 784 832refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019082220190816
364760932718 0 015800 784 832refgcc_-march=nocona_-O3_-fomit-frame-pointer2019082220190816
407923051042 0 011805 768 832refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019082220190816
489247725948 0 021037 760 1128refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082220190816
491811264807 0 020541 760 1128refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082220190816
499321884807 0 020541 760 1128refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019082220190816
508035035948 0 021037 760 1128refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082220190816
569879912607 0 020733 760 776refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082220190816
580494572607 0 020733 760 776refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082220190816
581617882607 0 019405 760 776refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082220190816
589386843763 0 017901 768 832refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082220190816
590868443763 0 017901 768 832refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082220190816
591470563763 0 017901 768 832refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019082220190816
601649023926 0 018109 768 832refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082220190816
602454753870 0 017925 768 832refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019082220190816
609753873870 0 017925 768 832refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019082220190816
634800482607 0 020733 760 776refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082220190816
640743623179 0 017421 768 832refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019082220190816
661996743926 0 018109 768 832refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019082220190816
662587953179 0 017221 768 832refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082220190816
664851062352 0 012309 768 832refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082220190816
665327521105 0 011917 768 832refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019082220190816
665893601105 0 011917 768 832refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019082220190816
672745481105 0 011925 768 832refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019082220190816
673353731176 0 012309 768 832refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019082220190816
674264603183 0 017445 768 832refgcc_-funroll-loops_-O_-fomit-frame-pointer2019082220190816
675900223183 0 017445 768 832refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082220190816
679261111105 0 011925 768 832refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019082220190816
682017481105 0 011965 768 832refgcc_-m64_-O2_-fomit-frame-pointer2019082220190816
684064021105 0 011917 768 832refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019082220190816
686641041105 0 011917 768 832refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019082220190816
692676481080 0 011949 768 832refgcc_-march=k8_-O2_-fomit-frame-pointer2019082220190816
693165961105 0 011925 768 832refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019082220190816
697057313179 0 017221 768 832refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019082220190816
698450043179 0 017421 768 832refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019082220190816
702804031105 0 011965 768 832refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082220190816
704077681037 0 011893 768 832refgcc_-march=k8_-O_-fomit-frame-pointer2019082220190816
704387761042 0 011853 768 832refgcc_-O_-fomit-frame-pointer2019082220190816
706968731042 0 011805 768 832refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019082220190816
707147113183 0 017445 768 832refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019082220190816
710558591105 0 011917 768 832refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019082220190816
712497711042 0 011805 768 832refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019082220190816
714273661037 0 011893 768 832refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019082220190816
714706951042 0 011805 768 832refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019082220190816
715257091042 0 011805 768 832refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019082220190816
723180931042 0 011853 768 832refgcc_-m64_-O_-fomit-frame-pointer2019082220190816
728101442074 0 011837 768 832refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082220190816
730840861080 0 011949 768 832refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019082220190816
738897721042 0 011853 768 832refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082220190816
747692521042 0 011805 768 832refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019082220190816
748440721042 0 011805 768 832refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019082220190816
748984621042 0 011805 768 832refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019082220190816
75675483868 0 010805 760 800refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019082220190816
757172531105 0 011965 768 832refgcc_-O2_-fomit-frame-pointer2019082220190816
76860960909 0 010877 760 800refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019082220190816
77059104868 0 010805 760 800refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019082220190816
77169162868 0 010805 760 800refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019082220190816
77303430868 0 010805 760 800refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082220190816
77410617868 0 010805 760 800refgcc_-march=k8_-Os_-fomit-frame-pointer2019082220190816
77414825868 0 010805 760 800refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019082220190816
78111639868 0 010805 760 800refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019082220190816
78257004868 0 010805 760 800refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019082220190816
78370620909 0 010877 760 800refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019082220190816
78578772868 0 010805 760 800refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082220190816
78755355868 0 010805 760 800refgcc_-Os_-fomit-frame-pointer2019082220190816
787876201037 0 011837 768 832refgcc_-march=barcelona_-O_-fomit-frame-pointer2019082220190816
78932331868 0 010805 760 800refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019082220190816
78964953909 0 010877 760 800refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019082220190816
79100226868 0 010805 760 800refgcc_-march=nocona_-Os_-fomit-frame-pointer2019082220190816
79605635909 0 010877 760 800refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082220190816
79985687909 0 010877 760 800refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082220190816
79988366909 0 010877 760 800refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082220190816
80272169868 0 010805 760 800refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019082220190816
80473864868 0 010805 760 800refgcc_-m64_-Os_-fomit-frame-pointer2019082220190816
81420984909 0 010877 760 800refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082220190816
816675861736 0 010805 760 800refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082220190816
84670739868 0 010805 760 800refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019082220190816
85145802909 0 010877 760 800refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019082220190816
85667952868 0 010805 760 800refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019082220190816
86092551909 0 010877 760 800refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019082220190816
1069635992582 0 016429 768 832refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082220190816
1119289502582 0 016429 768 832refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019082220190816
1142854413248 0 017525 768 832refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019082220190816
1146812161309 0 011925 768 832refgcc_-march=nocona_-O2_-fomit-frame-pointer2019082220190816
1175645781082 0 011997 768 832refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019082220190816
1176167161309 0 011925 768 832refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082220190816
1183823093248 0 017525 768 832refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019082220190816
1186790911082 0 011997 768 832refgcc_-march=nocona_-O_-fomit-frame-pointer2019082220190816
2141615691752 0 013902 760 792refgcc_-funroll-loops2019082220190816
2185012561752 0 013902 760 792refcc2019082220190816
2192642391752 0 013902 760 792refgcc2019082220190816

Test failure

Implementation: avx
Security model: unknown
Compiler: gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 6, namely:
CompilerImplementations
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer avx
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer avx
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer avx
gcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -O -fomit-frame-pointer ref
gcc -m64 -march=core-avx2 -Os -fomit-frame-pointer ref

Compiler output

Implementation: avx
Security model: unknown
Compiler: cc
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: recip.c:71:23: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
recip.c: static inline __m256i montproduct(__m256i x,__m256i y,__m256i yqinv)
recip.c: ^~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.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
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: ...

Number of similar (compiler,implementation) pairs: 87, namely:
CompilerImplementations
cc avx
gcc avx
gcc -O2 -fomit-frame-pointer avx
gcc -O3 -fomit-frame-pointer avx
gcc -O -fomit-frame-pointer avx
gcc -Os -fomit-frame-pointer avx
gcc -fno-schedule-insns -O2 -fomit-frame-pointer avx
gcc -fno-schedule-insns -O3 -fomit-frame-pointer avx
gcc -fno-schedule-insns -O -fomit-frame-pointer avx
gcc -fno-schedule-insns -Os -fomit-frame-pointer avx
gcc -funroll-loops avx
gcc -funroll-loops -O2 -fomit-frame-pointer avx
gcc -funroll-loops -O3 -fomit-frame-pointer avx
gcc -funroll-loops -O -fomit-frame-pointer avx
gcc -funroll-loops -Os -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer avx
gcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer avx
gcc -funroll-loops -m64 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -O -fomit-frame-pointer avx
gcc -funroll-loops -m64 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer avx
gcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer avx
gcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -march=barcelona -O -fomit-frame-pointer avx
gcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer avx
gcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer avx
gcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer avx
gcc -funroll-loops -march=k8 -O -fomit-frame-pointer avx
gcc -funroll-loops -march=k8 -Os -fomit-frame-pointer avx
gcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer avx
gcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer avx
gcc -funroll-loops -march=nocona -O -fomit-frame-pointer avx
gcc -funroll-loops -march=nocona -Os -fomit-frame-pointer avx
gcc -m64 -O2 -fomit-frame-pointer avx
gcc -m64 -O3 -fomit-frame-pointer avx
gcc -m64 -O -fomit-frame-pointer avx
gcc -m64 -Os -fomit-frame-pointer avx
gcc -m64 -march=core2 -O2 -fomit-frame-pointer avx
gcc -m64 -march=core2 -O3 -fomit-frame-pointer avx
gcc -m64 -march=core2 -O -fomit-frame-pointer avx
gcc -m64 -march=core2 -Os -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer avx
gcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer avx
gcc -m64 -march=corei7 -O2 -fomit-frame-pointer avx
gcc -m64 -march=corei7 -O3 -fomit-frame-pointer avx
gcc -m64 -march=corei7 -O -fomit-frame-pointer avx
gcc -m64 -march=corei7 -Os -fomit-frame-pointer avx
gcc -m64 -march=k8 -O2 -fomit-frame-pointer avx
gcc -m64 -march=k8 -O3 -fomit-frame-pointer avx
gcc -m64 -march=k8 -O -fomit-frame-pointer avx
gcc -m64 -march=k8 -Os -fomit-frame-pointer avx
gcc -m64 -march=nocona -O2 -fomit-frame-pointer avx
gcc -m64 -march=nocona -O3 -fomit-frame-pointer avx
gcc -m64 -march=nocona -O -fomit-frame-pointer avx
gcc -m64 -march=nocona -Os -fomit-frame-pointer avx
gcc -march=barcelona -O2 -fomit-frame-pointer avx
gcc -march=barcelona -O3 -fomit-frame-pointer avx
gcc -march=barcelona -O -fomit-frame-pointer avx
gcc -march=barcelona -Os -fomit-frame-pointer avx
gcc -march=k8 -O2 -fomit-frame-pointer avx
gcc -march=k8 -O3 -fomit-frame-pointer avx
gcc -march=k8 -O -fomit-frame-pointer avx
gcc -march=k8 -Os -fomit-frame-pointer avx
gcc -march=nocona -O2 -fomit-frame-pointer avx
gcc -march=nocona -O3 -fomit-frame-pointer avx
gcc -march=nocona -O -fomit-frame-pointer avx
gcc -march=nocona -Os -fomit-frame-pointer avx

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -O3 -fomit-frame-pointer -Qunused-arguments
recip.c: recip.c:83:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i f0vec = _mm256_set1_epi16(f0);
recip.c: ^
recip.c: recip.c:84:19: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i g0vec = _mm256_set1_epi16(g0);
recip.c: ^
recip.c: recip.c:85:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c: ^
recip.c: recip.c:85:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c: ^
recip.c: recip.c:69:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c: ^
recip.c: recip.c:86:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c: ^
recip.c: recip.c:86:48: error: always_inline function '_mm256_set1_epi16' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c: ^
recip.c: recip.c:69:17: note: expanded from macro 'qinvvec'
recip.c: #define qinvvec _mm256_set1_epi16(qinv)
recip.c: ^
recip.c: recip.c:87:21: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'sse4.2'
recip.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fomit-frame-pointer -Qunused-arguments avx
clang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx
clang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx
clang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx

Compiler output

Implementation: avx
Security model: unknown
Compiler: clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
recip.c: recip.c:85:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i f0vecqinv = _mm256_mullo_epi16(f0vec,qinvvec);
recip.c: ^
recip.c: recip.c:86:23: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i g0vecqinv = _mm256_mullo_epi16(g0vec,qinvvec);
recip.c: ^
recip.c: recip.c:92:21: error: always_inline function '_mm256_blendv_epi8' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i finew = _mm256_blendv_epi8(fi,gi,maskvec);
recip.c: ^
recip.c: recip.c:93:21: error: always_inline function '_mm256_blendv_epi8' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: __m256i ginew = _mm256_blendv_epi8(gi,fi,maskvec);
recip.c: ^
recip.c: recip.c:94:13: error: always_inline function '_mm256_sub_epi16' requires target feature 'avx2', but would be inlined into function 'vectormodq_swapeliminate' that is compiled without support for 'avx2'
recip.c: ginew = _mm256_sub_epi16(montproduct(ginew,f0vec,f0vecqinv),montproduct(finew,g0vec,g0vecqinv));
recip.c: ^
recip.c: recip.c:75:7: error: always_inline function '_mm256_mullo_epi16' requires target feature 'avx2', but would be inlined into function 'montproduct' that is compiled without support for 'avx2'
recip.c: d = _mm256_mullo_epi16(x,yqinv);
recip.c: ^
recip.c: recip.c:76:8: error: always_inline function '_mm256_mulhi_epi16' requires target feature 'avx2', but would be inlined into function 'montproduct' that is compiled without support for 'avx2'
recip.c: hi = _mm256_mulhi_epi16(x,y);
recip.c: ^
recip.c: recip.c:77:7: error: always_inline function '_mm256_mulhi_epi16' requires target feature 'avx2', but would be inlined into function 'montproduct' that is compiled without support for 'avx2'
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ^
recip.c: recip.c:78:10: error: always_inline function '_mm256_sub_epi16' requires target feature 'avx2', but would be inlined into function 'montproduct' that is compiled without support for 'avx2'
recip.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
clang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments avx
clang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx
clang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx
clang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments avx

Compiler output

Implementation: avx
Security model: unknown
Compiler: gcc -m64 -march=barcelona -O2 -fomit-frame-pointer
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: recip.c:71:23: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
recip.c: static inline __m256i montproduct(__m256i x,__m256i y,__m256i yqinv)
recip.c: ^~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.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
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: ...
recip.c: recip.c: In function 'montproduct':
recip.c: recip.c:72:1: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
recip.c: {
recip.c: ^
recip.c: recip.c:71:23: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
recip.c: static inline __m256i montproduct(__m256i x,__m256i y,__m256i yqinv)
recip.c: ^~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.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
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
recip.c: from recip.c:1:
recip.c: ...

Number of similar (compiler,implementation) pairs: 4, namely:
CompilerImplementations
gcc -m64 -march=barcelona -O2 -fomit-frame-pointer avx
gcc -m64 -march=barcelona -O3 -fomit-frame-pointer avx
gcc -m64 -march=barcelona -O -fomit-frame-pointer avx
gcc -m64 -march=barcelona -Os -fomit-frame-pointer avx

Compiler output

Implementation: avx
Security model: unknown
Compiler: gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: recip.c: In function 'montproduct':
recip.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
recip.c: _mm256_sub_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~
recip.c: recip.c:78:10: note: called from here
recip.c: return _mm256_sub_epi16(hi,e);
recip.c: ^~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:77:5: note: called from here
recip.c: e = _mm256_mulhi_epi16(d,qvec);
recip.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
recip.c: from recip.c:1:
recip.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:546:1: error: inlining failed in call to always_inline '_mm256_mulhi_epi16': target specific option mismatch
recip.c: _mm256_mulhi_epi16 (__m256i __A, __m256i __B)
recip.c: ^~~~~~~~~~~~~~~~~~
recip.c: recip.c:76:6: note: called from here
recip.c: hi = _mm256_mulhi_epi16(x,y);
recip.c: ~~~^~~~~~~~~~~~~~~~~~~~~~~~~
recip.c: ...

Number of similar (compiler,implementation) pairs: 16, namely:
CompilerImplementations
gcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx
gcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx
gcc -m64 -march=core-avx-i -O -fomit-frame-pointer avx
gcc -m64 -march=core-avx-i -Os -fomit-frame-pointer avx
gcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx
gcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx
gcc -m64 -march=corei7-avx -O -fomit-frame-pointer avx
gcc -m64 -march=corei7-avx -Os -fomit-frame-pointer avx
gcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer avx
gcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer avx
gcc -m64 -march=native -mtune=native -O -fomit-frame-pointer avx
gcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer avx
gcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv avx
gcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv avx