Implementation notes: amd64, gpu, crypto_decode/256x2

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_decode
Primitive: 256x2
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
1328332 0 013533 768 800refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019082020190816
1479334 0 013389 768 800refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082020190816
1482334 0 013453 768 800refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019082020190816
1488334 0 013333 768 800refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019082020190816
1500334 0 014806 776 800refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082020190816
1536334 0 013389 768 800refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019082020190816
1548334 0 015446 776 800refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019082020190816
1557334 0 014806 776 800refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019082020190816
1560327 0 013613 768 800refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019082020190816
1560334 0 015534 776 800refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019082020190816
1563334 0 013389 768 800refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019082020190816
1563334 0 013333 768 800refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019082020190816
1572327 0 014590 776 800refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082020190816
1572327 0 013605 768 800refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019082020190816
1588334 0 014806 776 800refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019082020190816
1632327 0 014590 776 800refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019082020190816
164487 0 08969 752 768refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019082020190816
166892 0 09805 768 800refgcc_-O_-fomit-frame-pointer2019082020190816
1668327 0 013117 768 800refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082020190816
167191 0 09845 768 800refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019082020190816
1680122 0 016397 760 744refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019082020190816
1683130 0 014701 760 1128refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019082020190816
1704130 0 015357 760 1128refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082020190816
1704334 0 015446 776 800refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019082020190816
1708188 0 012606 776 800refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082020190816
1713130 0 017741 760 744refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082020190816
171691 0 09821 768 800refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019082020190816
171987 0 08969 752 768refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019082020190816
1725130 0 014701 760 1128refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019082020190816
1725327 0 013613 768 800refgcc_-funroll-loops_-O_-fomit-frame-pointer2019082020190816
174087 0 08969 752 768refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019082020190816
174094 0 010069 768 800refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019082020190816
1749130 0 017741 760 744refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082020190816
175894 0 012062 776 800refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019082020190816
1791182 0 09789 768 800refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082020190816
1792327 0 013613 768 800refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019082020190816
179791 0 08993 752 768refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082020190816
180095 0 012134 776 800refgcc_-O3_-fomit-frame-pointer2019082020190816
1812327 0 013405 768 800refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019082020190816
183394 0 09765 768 800refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019082020190816
183687 0 08969 752 768refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019082020190816
1840130 0 017741 760 744refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019082020190816
184491 0 09805 768 800refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019082020190816
1848334 0 013453 768 800refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082020190816
184891 0 09805 768 800refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019082020190816
1868327 0 013405 768 800refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019082020190816
1872327 0 013117 768 800refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019082020190816
187294 0 09757 768 800refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019082020190816
187291 0 09805 768 800refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019082020190816
188095 0 09757 768 800refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019082020190816
188491 0 09789 768 800refgcc_-march=barcelona_-O_-fomit-frame-pointer2019082020190816
188894 0 09757 768 800refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019082020190816
1896130 0 015357 760 1128refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019082020190816
189691 0 08993 752 768refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019082020190816
189987 0 08969 752 768refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019082020190816
191691 0 09805 768 800refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019082020190816
193695 0 09757 768 800refgcc_-m64_-O2_-fomit-frame-pointer2019082020190816
1940334 0 015534 776 800refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019082020190816
194094 0 012190 776 800refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019082020190816
194491 0 08993 752 768refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019082020190816
194887 0 08969 752 768refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019082020190816
195687 0 08969 752 768refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019082020190816
196494 0 012126 776 800refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019082020190816
197191 0 09805 768 800refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019082020190816
1972327 0 013605 768 800refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019082020190816
197287 0 08969 752 768refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019082020190816
197491 0 08993 752 768refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082020190816
197788 0 011902 776 800refgcc_-march=nocona_-O3_-fomit-frame-pointer2019082020190816
1980332 0 013533 768 800refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019082020190816
198494 0 012190 776 800refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019082020190816
200488 0 011902 776 800refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019082020190816
201692 0 09805 768 800refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019082020190816
2020188 0 010069 768 800refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019082020190816
202087 0 08969 752 768refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019082020190816
203694 0 011974 776 800refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019082020190816
204694 0 012438 776 800refgcc_-march=k8_-O3_-fomit-frame-pointer2019082020190816
204891 0 09845 768 800refgcc_-march=k8_-O_-fomit-frame-pointer2019082020190816
205291 0 09821 768 800refgcc_-march=nocona_-O_-fomit-frame-pointer2019082020190816
205694 0 09805 768 800refgcc_-march=k8_-O2_-fomit-frame-pointer2019082020190816
206094 0 09757 768 800refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019082020190816
207387 0 08969 752 768refgcc_-march=nocona_-Os_-fomit-frame-pointer2019082020190816
208894 0 09805 768 800refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019082020190816
209691 0 08993 752 768refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019082020190816
210091 0 08993 752 768refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082020190816
210092 0 09805 768 800refgcc_-m64_-O_-fomit-frame-pointer2019082020190816
210894 0 09765 768 800refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019082020190816
212195 0 09757 768 800refgcc_-O2_-fomit-frame-pointer2019082020190816
212491 0 09805 768 800refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019082020190816
212494 0 09757 768 800refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019082020190816
213695 0 012134 776 800refgcc_-m64_-O3_-fomit-frame-pointer2019082020190816
214094 0 012190 776 800refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019082020190816
214894 0 012094 776 800refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019082020190816
215291 0 08993 752 768refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019082020190816
215687 0 08969 752 768refgcc_-Os_-fomit-frame-pointer2019082020190816
220491 0 08993 752 768refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019082020190816
221788 0 09509 768 800refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019082020190816
221788 0 09509 768 800refgcc_-march=nocona_-O2_-fomit-frame-pointer2019082020190816
223891 0 08993 752 768refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019082020190816
224487 0 08969 752 768refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019082020190816
224894 0 09765 768 800refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019082020190816
225294 0 012126 776 800refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019082020190816
225291 0 09805 768 800refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019082020190816
226487 0 08969 752 768refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019082020190816
2312174 0 08969 752 768refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019082020190816
232487 0 08969 752 768refgcc_-march=k8_-Os_-fomit-frame-pointer2019082020190816
234091 0 09805 768 800refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019082020190816
236895 0 012134 776 800refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019082020190816
241294 0 012438 776 800refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019082020190816
241294 0 012606 776 800refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019082020190816
241294 0 09757 768 800refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019082020190816
242887 0 08969 752 768refgcc_-m64_-Os_-fomit-frame-pointer2019082020190816
243287 0 08969 752 768refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019082020190816
4316157 0 011454 760 760refgcc2019082020190816
4356157 0 011454 760 760refgcc_-funroll-loops2019082020190816
4680157 0 011454 760 760refcc2019082020190816

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
decode.c: decode.c: In function 'crypto_decode_256x2_avx':
decode.c: decode.c:16:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
decode.c: __m256i x = _mm256_set1_epi32(*(int32_t *) s);
decode.c: ^
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:925:1: error: inlining failed in call to always_inline '_mm256_storeu_si256': target specific option mismatch
decode.c: _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: decode.c:23:5: note: called from here
decode.c: _mm256_storeu_si256(r,x);
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1341:1: error: inlining failed in call to always_inline '_mm256_set1_epi64x': target specific option mismatch
decode.c: _mm256_set1_epi64x (long long __A)
decode.c: ^~~~~~~~~~~~~~~~~~
decode.c: decode.c:7:15: note: called from here
decode.c: #define MASK2 _mm256_set1_epi64x(0x0101010101010101)
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: decode.c:22:10: note: in expansion of macro 'MASK2'
decode.c: x &= MASK2;
decode.c: ^~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.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
decode.c: decode.c:16:17: error: always_inline function '_mm256_set1_epi32' requires target feature 'sse4.2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'sse4.2'
decode.c: __m256i x = _mm256_set1_epi32(*(int32_t *) s);
decode.c: ^
decode.c: decode.c:18:9: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_shuffle_epi8(x,COPY);
decode.c: ^
decode.c: decode.c:18:31: error: always_inline function '_mm256_set_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'sse4.2'
decode.c: x = _mm256_shuffle_epi8(x,COPY);
decode.c: ^
decode.c: decode.c:5:14: note: expanded from macro 'COPY'
decode.c: #define COPY _mm256_set_epi64x(0x0303030303030303,0x0202020202020202,0x0101010101010101,0x0000000000000000)
decode.c: ^
decode.c: decode.c:20:9: error: always_inline function '_mm256_andnot_si256' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_andnot_si256(x,MASK);
decode.c: ^
decode.c: decode.c:20:31: error: always_inline function '_mm256_set1_epi64x' requires target feature 'sse4.2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'sse4.2'
decode.c: x = _mm256_andnot_si256(x,MASK);
decode.c: ^
decode.c: decode.c:6:14: note: expanded from macro 'MASK'
decode.c: #define MASK _mm256_set1_epi64x(0x8040201008040201)
decode.c: ^
decode.c: decode.c:21:9: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_cmpeq_epi8(x,_mm256_setzero_si256());
decode.c: ^
decode.c: decode.c:21:29: error: always_inline function '_mm256_setzero_si256' requires target feature 'sse4.2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'sse4.2'
decode.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
decode.c: decode.c:18:9: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_shuffle_epi8(x,COPY);
decode.c: ^
decode.c: decode.c:20:9: error: always_inline function '_mm256_andnot_si256' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_andnot_si256(x,MASK);
decode.c: ^
decode.c: decode.c:21:9: error: always_inline function '_mm256_cmpeq_epi8' requires target feature 'avx2', but would be inlined into function 'crypto_decode_256x2_avx' that is compiled without support for 'avx2'
decode.c: x = _mm256_cmpeq_epi8(x,_mm256_setzero_si256());
decode.c: ^
decode.c: 3 errors generated.

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
decode.c: decode.c: In function 'crypto_decode_256x2_avx':
decode.c: decode.c:16:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
decode.c: __m256i x = _mm256_set1_epi32(*(int32_t *) s);
decode.c: ^
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:925:1: error: inlining failed in call to always_inline '_mm256_storeu_si256': target specific option mismatch
decode.c: _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: decode.c:23:5: note: called from here
decode.c: _mm256_storeu_si256(r,x);
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1341:1: error: inlining failed in call to always_inline '_mm256_set1_epi64x': target specific option mismatch
decode.c: _mm256_set1_epi64x (long long __A)
decode.c: ^~~~~~~~~~~~~~~~~~
decode.c: decode.c:7:15: note: called from here
decode.c: #define MASK2 _mm256_set1_epi64x(0x0101010101010101)
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: decode.c:22:10: note: in expansion of macro 'MASK2'
decode.c: x &= MASK2;
decode.c: ^~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.c: ...
decode.c: decode.c: In function 'crypto_decode_256x2_avx':
decode.c: decode.c:16:13: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
decode.c: __m256i x = _mm256_set1_epi32(*(int32_t *) s);
decode.c: ^
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:925:1: error: inlining failed in call to always_inline '_mm256_storeu_si256': target specific option mismatch
decode.c: _mm256_storeu_si256 (__m256i_u *__P, __m256i __A)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: decode.c:23:5: note: called from here
decode.c: _mm256_storeu_si256(r,x);
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:41:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avxintrin.h:1341:1: error: inlining failed in call to always_inline '_mm256_set1_epi64x': target specific option mismatch
decode.c: _mm256_set1_epi64x (long long __A)
decode.c: ^~~~~~~~~~~~~~~~~~
decode.c: decode.c:7:15: note: called from here
decode.c: #define MASK2 _mm256_set1_epi64x(0x0101010101010101)
decode.c: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: decode.c:22:10: note: in expansion of macro 'MASK2'
decode.c: x &= MASK2;
decode.c: ^~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.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
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.c: decode.c: In function 'crypto_decode_256x2_avx':
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:231:1: error: inlining failed in call to always_inline '_mm256_cmpeq_epi8': target specific option mismatch
decode.c: _mm256_cmpeq_epi8 (__m256i __A, __m256i __B)
decode.c: ^~~~~~~~~~~~~~~~~
decode.c: decode.c:21:7: note: called from here
decode.c: x = _mm256_cmpeq_epi8(x,_mm256_setzero_si256());
decode.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:186:1: error: inlining failed in call to always_inline '_mm256_andnot_si256': target specific option mismatch
decode.c: _mm256_andnot_si256 (__m256i __A, __m256i __B)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: decode.c:20:7: note: called from here
decode.c: x = _mm256_andnot_si256(x,MASK);
decode.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.c: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
decode.c: from decode.c:1:
decode.c: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:588:1: error: inlining failed in call to always_inline '_mm256_shuffle_epi8': target specific option mismatch
decode.c: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
decode.c: ^~~~~~~~~~~~~~~~~~~
decode.c: decode.c:18:7: note: called from here
decode.c: x = _mm256_shuffle_epi8(x,COPY);
decode.c: ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
decode.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