Implementation notes: amd64, skylake, crypto_aead/minalpherv11

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: minalpherv11
TimeImplementationCompilerBenchmark dateSUPERCOP version
30584avx2clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
30602avx2clang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
30676avx2g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
30692avx2g++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
30706avx2clang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
30718avx2g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
30746avx2g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
30762avx2g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
30786avx2g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
30912avx2g++ -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
31250avx2g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
31498avx2g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
31792avx2clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
35332avx2g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
35452avx2g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
36912avx2g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
2385824refclang -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2397610refclang -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
2442754refclang -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
2444822refclang -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2445748refclang -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
2448286refclang -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2481568refclang -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2482076refclang -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2490952refclang -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2529516refclang -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
2717676refgcc -funroll-loops -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
2719548refgcc -funroll-loops -march=nocona -O3 -fomit-frame-pointer2016121620161026
2889140refgcc -funroll-loops -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
2892072refgcc -funroll-loops -march=nocona -O2 -fomit-frame-pointer2016121620161026
2900240refgcc -funroll-loops -march=barcelona -O -fomit-frame-pointer2016121620161026
2900456refgcc -funroll-loops -march=k8 -O -fomit-frame-pointer2016121620161026
2902422refgcc -funroll-loops -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
2903070refgcc -funroll-loops -m64 -O -fomit-frame-pointer2016121620161026
2903168refgcc -funroll-loops -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
2903388refgcc -funroll-loops -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
2903756refgcc -funroll-loops -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
2904148refgcc -funroll-loops -march=barcelona -O2 -fomit-frame-pointer2016121620161026
2904162refgcc -funroll-loops -O -fomit-frame-pointer2016121620161026
2905384refgcc -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
2905580refgcc -funroll-loops -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
2908322refgcc -funroll-loops -march=k8 -O2 -fomit-frame-pointer2016121620161026
2915750refgcc -funroll-loops -march=nocona -O -fomit-frame-pointer2016121620161026
2920634refgcc -funroll-loops -O2 -fomit-frame-pointer2016121620161026
2921440refgcc -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
2922390refgcc -funroll-loops -m64 -O2 -fomit-frame-pointer2016121620161026
2923364refgcc -funroll-loops -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
2928334refgcc -funroll-loops -march=k8 -O3 -fomit-frame-pointer2016121620161026
2951256refgcc -funroll-loops -m64 -O3 -fomit-frame-pointer2016121620161026
2954008refgcc -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2954452refgcc -funroll-loops -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2954576refgcc -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2956388refgcc -O3 -fomit-frame-pointer2016121620161026
2957666refgcc -m64 -O3 -fomit-frame-pointer2016121620161026
2958260refgcc -funroll-loops -O3 -fomit-frame-pointer2016121620161026
2959346refgcc -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
2960652refgcc -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
2964668refgcc -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
2968178refgcc -funroll-loops -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2971072refgcc -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
2981254refgcc -march=nocona -O3 -fomit-frame-pointer2016121620161026
2983006refgcc -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
3061042refgcc -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3063776refgcc -march=k8 -O3 -fomit-frame-pointer2016121620161026
3066002refgcc -march=barcelona -O3 -fomit-frame-pointer2016121620161026
3067950refgcc -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
3126852refgcc -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
3128956refgcc -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
3176906refgcc -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
3179316refgcc -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
3179982refgcc -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
3924524refgcc -march=barcelona -O2 -fomit-frame-pointer2016121620161026
3930752refgcc -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
3978686refgcc -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
3985314refgcc -march=nocona -O2 -fomit-frame-pointer2016121620161026
4043086refgcc -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
4047156refgcc -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
4055762refgcc -m64 -O2 -fomit-frame-pointer2016121620161026
4056734refgcc -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
4058538refgcc -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
4075722refgcc -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
4086554refgcc -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
4089484refgcc -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
4096704refgcc -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
4098890refgcc -O2 -fomit-frame-pointer2016121620161026
4099862refgcc -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
4121256refgcc -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
4122954refgcc -march=k8 -O2 -fomit-frame-pointer2016121620161026
4133036refgcc -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
4409734refgcc -funroll-loops -march=k8 -Os -fomit-frame-pointer2016121620161026
4413618refgcc -funroll-loops -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
4414584refgcc -funroll-loops -m64 -Os -fomit-frame-pointer2016121620161026
4415304refgcc -funroll-loops -march=barcelona -Os -fomit-frame-pointer2016121620161026
4423656refgcc -funroll-loops -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
4432374refgcc -funroll-loops -Os -fomit-frame-pointer2016121620161026
4453348refgcc -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
4460774refgcc -funroll-loops -march=nocona -Os -fomit-frame-pointer2016121620161026
4467380refgcc -funroll-loops -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
4646972refgcc -march=nocona -O -fomit-frame-pointer2016121620161026
4653028refgcc -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
4657218refgcc -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
4664470refgcc -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
4669290refgcc -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
4680402refgcc -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
4687228refgcc -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
4695680refgcc -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
4776838refgcc -march=barcelona -O -fomit-frame-pointer2016121620161026
4823480refgcc -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
4882602refgcc -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
4883560refgcc -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
4884534refgcc -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
4923012refgcc -m64 -O -fomit-frame-pointer2016121620161026
4938898refgcc -O -fomit-frame-pointer2016121620161026
4967260refgcc -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
4986522refgcc -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
5006870refgcc -march=k8 -O -fomit-frame-pointer2016121620161026
6054514refgcc -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
6057116refgcc -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
6058400refgcc -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
6061252refgcc -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
6061606refgcc -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
6062726refgcc -m64 -Os -fomit-frame-pointer2016121620161026
6063618refgcc -Os -fomit-frame-pointer2016121620161026
6064620refgcc -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
6066868refgcc -march=barcelona -Os -fomit-frame-pointer2016121620161026
6084756refgcc -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
6101078refgcc -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
6101774refgcc -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
6102454refgcc -march=k8 -Os -fomit-frame-pointer2016121620161026
6105376refgcc -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
6111578refgcc -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
6112032refgcc -march=nocona -Os -fomit-frame-pointer2016121620161026
6116228refgcc -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
6128704refgcc -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
20014814refgcc2016121620161026
20034106refgcc -funroll-loops2016121620161026
20104528refcc2016121620161026

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
MinalpherCore.cpp: MinalpherCore.cpp:85:27: error: always_inline function '_mm256_set_epi32' requires target feature 'sse4.2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'sse4.2'
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:88:17: error: always_inline function '_mm256_undefined_si256' requires target feature 'sse4.2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'sse4.2'
MinalpherCore.cpp: __m256i tmp = _mm256_permute4x64_epi64(DATA, 0xD8);
MinalpherCore.cpp: ^
MinalpherCore.cpp: /usr/bin/../lib/clang/3.9.0/include/avx2intrin.h:959:44: note: expanded from macro '_mm256_permute4x64_epi64'
MinalpherCore.cpp: (__v4di)_mm256_undefined_si256(), \
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:92:10: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp0 = _mm256_and_si256(ymmMask, tmp);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:93:10: error: always_inline function '_mm256_andnot_si256' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp1 = _mm256_andnot_si256(ymmMask, tmp);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:96:10: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp1 = _mm256_srli_epi16(tmp1, 4);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:99:18: error: always_inline function '_mm256_unpacklo_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: __m256i ymm0 = _mm256_unpacklo_epi8(tmp0, tmp1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:100:18: error: always_inline function '_mm256_unpackhi_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: __m256i ymm1 = _mm256_unpackhi_epi8(tmp0, tmp1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:106:27: error: always_inline function '_mm256_set_epi8' requires target feature 'sse4.2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'sse4.2'
MinalpherCore.cpp: ...

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

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments
MinalpherCore.cpp: MinalpherCore.cpp:92:10: error: always_inline function '_mm256_and_si256' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp0 = _mm256_and_si256(ymmMask, tmp);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:93:10: error: always_inline function '_mm256_andnot_si256' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp1 = _mm256_andnot_si256(ymmMask, tmp);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:96:10: error: always_inline function '_mm256_srli_epi16' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: tmp1 = _mm256_srli_epi16(tmp1, 4);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:99:18: error: always_inline function '_mm256_unpacklo_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: __m256i ymm0 = _mm256_unpacklo_epi8(tmp0, tmp1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:100:18: error: always_inline function '_mm256_unpackhi_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: __m256i ymm1 = _mm256_unpackhi_epi8(tmp0, tmp1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:128:3: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: singleRoundFunctionH( 0, ymm0, ymm1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:112:12: note: expanded from macro 'singleRoundFunctionH'
MinalpherCore.cpp: ymm0 = _mm256_shuffle_epi8( ymmSbox, ymm0 );\
MinalpherCore.cpp: ^
MinalpherCore.cpp: MinalpherCore.cpp:128:3: error: always_inline function '_mm256_shuffle_epi8' requires target feature 'avx2', but would be inlined into function 'minalpher_core_single_block' that is compiled without support for 'avx2'
MinalpherCore.cpp: MinalpherCore.cpp:113:12: note: expanded from macro 'singleRoundFunctionH'
MinalpherCore.cpp: ymm1 = _mm256_shuffle_epi8( ymmSbox, ymm1 );\
MinalpherCore.cpp: ^
MinalpherCore.cpp: ...

Number of similar (compiler,implementation) pairs: 2, namely:
CompilerImplementations
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments avx2
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments avx2

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: g++
MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_single_block(const __m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:85:138: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1232:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi32(int, int, int, int, int, int, int, int)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi32 (int __A, int __B, int __C, int __D,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:85:138: note: called from here
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:186:1: error: inlining failed in call to always_inline '__m256i _mm256_andnot_si256(__m256i, __m256i)': target specific option mismatch
MinalpherCore.cpp: _mm256_andnot_si256 (__m256i __A, __m256i __B)
MinalpherCore.cpp: ^~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:93:43: note: called from here
MinalpherCore.cpp: tmp1 = _mm256_andnot_si256(ymmMask, tmp);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
MinalpherCore.cpp: ...

Number of similar (compiler,implementation) pairs: 1, namely:
CompilerImplementations
g++ avx2

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: g++ -O2 -fomit-frame-pointer
MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_single_block(const __m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:85:138: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h: In function 'void __static_initialization_and_destruction_0(int, int)':
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:705:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock3 = _mm256_set_epi8(0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2, 0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:704:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock2 = _mm256_set_epi8(0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3, 0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: ...

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

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_single_block(const __m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:85:138: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h: In function 'void __static_initialization_and_destruction_0(int, int)':
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:705:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock3 = _mm256_set_epi8(0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2, 0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:704:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock2 = _mm256_set_epi8(0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3, 0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: ...
MinalpherCore.cpp: MinalpherCore.cpp: In function 'void minalpher_core_single_block(const __m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: MinalpherCore.cpp:85:138: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
MinalpherCore.cpp: const __m256i ymmMask = _mm256_set_epi32(0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h: In function 'void __static_initialization_and_destruction_0(int, int)':
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:705:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock3 = _mm256_set_epi8(0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2, 0xc, 0xd, 0x9, 0x8, 0xf, 0xe, 0xb, 0xa, 0x4, 0x5, 0x1, 0x0, 0x7, 0x6, 0x3, 0x2);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:41:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avxintrin.h:1252:1: error: inlining failed in call to always_inline '__m256i _mm256_set_epi8(char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char, char)': target specific option mismatch
MinalpherCore.cpp: _mm256_set_epi8 (char __q31, char __q30, char __q29, char __q28,
MinalpherCore.cpp: ^~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:704:55: note: called from here
MinalpherCore.cpp: const __m256i ShuffleQuadrupleBlock2 = _mm256_set_epi8(0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3, 0x9, 0x8, 0xf, 0xe, 0xd, 0xc, 0xa, 0xb, 0x1, 0x0, 0x7, 0x6, 0x5, 0x4, 0x2, 0x3);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: ...

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

Compiler output

Implementation: crypto_aead/minalpherv11/avx2
Compiler: g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h: In function 'void minalpher_core_single_block(const __m256i&, __m256i&, __m256i&)':
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:588:1: error: inlining failed in call to always_inline '__m256i _mm256_shuffle_epi8(__m256i, __m256i)': target specific option mismatch
MinalpherCore.cpp: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
MinalpherCore.cpp: ^~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:150:30: note: called from here
MinalpherCore.cpp: ymm1_ = _mm256_shuffle_epi8(ymm1, ShuffleSingleBlock1);
MinalpherCore.cpp: ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/avx2intrin.h:588:1: error: inlining failed in call to always_inline '__m256i _mm256_shuffle_epi8(__m256i, __m256i)': target specific option mismatch
MinalpherCore.cpp: _mm256_shuffle_epi8 (__m256i __X, __m256i __Y)
MinalpherCore.cpp: ^~~~~~~~~~~~~~~~~~~
MinalpherCore.cpp: MinalpherCore.cpp:149:45: note: called from here
MinalpherCore.cpp: ymm1 = _mm256_shuffle_epi8(ymmSbox, ymm1);
MinalpherCore.cpp: ^
MinalpherCore.cpp: In file included from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/immintrin.h:43:0,
MinalpherCore.cpp: from /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/x86intrin.h:48,
MinalpherCore.cpp: from define.h:47,
MinalpherCore.cpp: from MinalpherCore.cpp:33:
MinalpherCore.cpp: ...

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer avx2
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer avx2
g++ -m64 -march=core-avx-i -O -fomit-frame-pointer avx2
g++ -m64 -march=core-avx-i -Os -fomit-frame-pointer avx2
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer avx2
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer avx2
g++ -m64 -march=corei7-avx -O -fomit-frame-pointer avx2
g++ -m64 -march=corei7-avx -Os -fomit-frame-pointer avx2