Implementation notes: amd64, skylake, crypto_aead/paeq80

Computer: skylake
Architecture: amd64
CPU ID: GenuineIntel-000506e3-bfebfbff
SUPERCOP version: 20161026
Operation: crypto_aead
Primitive: paeq80
TimeImplementationCompilerBenchmark dateSUPERCOP version
23128aesnig++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
23342aesnig++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
23522aesnig++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
23668aesnig++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
23878aesnig++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
23964aesniclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
24056aesnig++ -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
24076aesniclang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
24136aesnig++ -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
24220aesniclang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
24406aesniclang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
24602aesnig++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
24772aesnig++ -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
25114aesnig++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
25844aesnig++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
26250aesnig++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
26276aesnig++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
26764aesnig++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
26912aesnig++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
28814aesnig++ -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
28862aesnig++ -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
29298aesnig++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
29304aesnig++ -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
29496aesnig++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
1990356refclang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2006090refclang++ -O3 -fwrapv -mavx2 -fomit-frame-pointer -Qunused-arguments2016121620161026
2019210refclang++ -O3 -fomit-frame-pointer -Qunused-arguments2016121620161026
2022748refclang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2025716refclang++ -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2026890refclang++ -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments2016121620161026
2030458refclang++ -O3 -fwrapv -march=x86-64 -mcpu=core-avx2 -mavx2 -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2035334refclang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments2016121620161026
2049708refclang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments2016121620161026
2086948refclang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments2016121620161026
2656766refg++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2671414refg++ -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2675672refg++ -m64 -march=barcelona -O3 -fomit-frame-pointer2016121620161026
2676892refg++ -m64 -O3 -fomit-frame-pointer2016121620161026
2680364refg++ -fno-schedule-insns -O3 -fomit-frame-pointer2016121620161026
2682290refg++ -m64 -march=k8 -O3 -fomit-frame-pointer2016121620161026
2682704refg++ -O3 -fomit-frame-pointer2016121620161026
2684040refg++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer2016121620161026
2684852refg++ -m64 -march=core2 -O3 -fomit-frame-pointer2016121620161026
2687152refg++ -m64 -march=corei7 -O3 -fomit-frame-pointer2016121620161026
2687254refg++ -march=k8 -O3 -fomit-frame-pointer2016121620161026
2712780refg++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer2016121620161026
2715212refg++ -m64 -march=nocona -O3 -fomit-frame-pointer2016121620161026
2720356refg++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv2016121620161026
2722498refg++ -m64 -march=core-avx2 -O3 -fomit-frame-pointer2016121620161026
2724462refg++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer2016121620161026
2731918refg++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer2016121620161026
2737404refg++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer2016121620161026
2764790refg++ -march=nocona -O3 -fomit-frame-pointer2016121620161026
2768274refg++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
4599690refg++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
6263532refg++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer2016121620161026
6278290refg++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer2016121620161026
6305292refg++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv2016121620161026
6373246refg++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer2016121620161026
6380216refg++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer2016121620161026
6392978refg++ -march=nocona -O2 -fomit-frame-pointer2016121620161026
6406296refg++ -m64 -march=nocona -O2 -fomit-frame-pointer2016121620161026
6545940refg++ -march=k8 -O2 -fomit-frame-pointer2016121620161026
6547194refg++ -m64 -march=k8 -O2 -fomit-frame-pointer2016121620161026
6578794refg++ -fno-schedule-insns -O -fomit-frame-pointer2016121620161026
6580086refg++ -march=barcelona -O2 -fomit-frame-pointer2016121620161026
6583170refg++ -m64 -march=barcelona -O -fomit-frame-pointer2016121620161026
6583918refg++ -O -fomit-frame-pointer2016121620161026
6588184refg++ -m64 -march=barcelona -O2 -fomit-frame-pointer2016121620161026
6589688refg++ -m64 -O -fomit-frame-pointer2016121620161026
6595394refg++ -m64 -march=core-avx2 -O -fomit-frame-pointer2016121620161026
6597054refg++ -march=k8 -O -fomit-frame-pointer2016121620161026
6600290refg++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer2016121620161026
6607350refg++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer2016121620161026
6607542refg++ -m64 -march=corei7 -O -fomit-frame-pointer2016121620161026
6615580refg++ -march=barcelona -O -fomit-frame-pointer2016121620161026
6625326refg++ -m64 -march=core-avx-i -O -fomit-frame-pointer2016121620161026
6645970refg++ -m64 -march=core2 -O -fomit-frame-pointer2016121620161026
6646708refg++ -O2 -fomit-frame-pointer2016121620161026
6649052refg++ -m64 -O2 -fomit-frame-pointer2016121620161026
6649680refg++ -m64 -march=corei7-avx -O -fomit-frame-pointer2016121620161026
6652972refg++ -m64 -march=corei7 -O2 -fomit-frame-pointer2016121620161026
6660084refg++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv2016121620161026
6660444refg++ -m64 -march=k8 -O -fomit-frame-pointer2016121620161026
6662642refg++ -fno-schedule-insns -O2 -fomit-frame-pointer2016121620161026
6674308refg++ -m64 -march=native -mtune=native -O -fomit-frame-pointer2016121620161026
6676674refg++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer2016121620161026
6679972refg++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer2016121620161026
6685496refg++ -m64 -march=core2 -O2 -fomit-frame-pointer2016121620161026
6724864refg++ -m64 -march=nocona -O -fomit-frame-pointer2016121620161026
6750972refg++ -march=nocona -O -fomit-frame-pointer2016121620161026
7145396refg++ -m64 -march=nocona -Os -fomit-frame-pointer2016121620161026
7150278refg++ -march=nocona -Os -fomit-frame-pointer2016121620161026
7151608refg++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
7266246refg++ -m64 -march=core-avx2 -Os -fomit-frame-pointer2016121620161026
7271034refg++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer2016121620161026
7340832refg++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv2016121620161026
9260870refg++ -m64 -march=corei7 -Os -fomit-frame-pointer2016121620161026
9282754refg++ -m64 -Os -fomit-frame-pointer2016121620161026
9285906refg++ -m64 -march=core2 -Os -fomit-frame-pointer2016121620161026
9292028refg++ -march=k8 -Os -fomit-frame-pointer2016121620161026
9293318refg++ -m64 -march=k8 -Os -fomit-frame-pointer2016121620161026
9299718refg++ -fno-schedule-insns -Os -fomit-frame-pointer2016121620161026
9300646refg++ -march=barcelona -Os -fomit-frame-pointer2016121620161026
9304808refg++ -m64 -march=barcelona -Os -fomit-frame-pointer2016121620161026
9314650refg++ -Os -fomit-frame-pointer2016121620161026
9326570refg++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer2016121620161026
9329152refg++ -m64 -march=corei7-avx -Os -fomit-frame-pointer2016121620161026
9331796refg++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer2016121620161026
9369156refg++ -m64 -march=core-avx-i -Os -fomit-frame-pointer2016121620161026
39487080refg++2016121620161026

Compiler output

Implementation: crypto_aead/paeq80/aesni
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
encrypt.cpp: encrypt.cpp:166:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc0 = _mm_aesenc_si128(acc0, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:167:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc1 = _mm_aesenc_si128(acc1, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:168:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc2 = _mm_aesenc_si128(acc2, roundkey2);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:169:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc3 = _mm_aesenc_si128(acc3, roundkey3);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:171:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc4 = _mm_aesenc_si128(acc4, roundkey0);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:172:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:173:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ^
encrypt.cpp: encrypt.cpp:174:11: error: always_inline function '_mm_aesenc_si128' requires target feature 'aes', but would be inlined into function 'DoubleFPermAsm' that is compiled without support for 'aes'
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ^
encrypt.cpp: 8 errors generated.

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

Compiler output

Implementation: crypto_aead/paeq80/aesni
Compiler: g++
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:44: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:44: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:44: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...

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

Compiler output

Implementation: crypto_aead/paeq80/aesni
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:44: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:44: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:44: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h: In function 'void DoubleFPermAsm(const __m128i*, const __m128i*, __m128i*, __m128i*)':
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:174:44: note: called from here
encrypt.cpp: acc7 = _mm_aesenc_si128(acc7, roundkey3);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:173:44: note: called from here
encrypt.cpp: acc6 = _mm_aesenc_si128(acc6, roundkey2);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ^~~~~~~~~~~~~~~~
encrypt.cpp: encrypt.cpp:172:44: note: called from here
encrypt.cpp: acc5 = _mm_aesenc_si128(acc5, roundkey1);
encrypt.cpp: ^
encrypt.cpp: In file included from encrypt.cpp:13:0:
encrypt.cpp: /usr/lib/gcc/x86_64-pc-linux-gnu/6.2.1/include/wmmintrin.h:61:1: error: inlining failed in call to always_inline '__m128i _mm_aesenc_si128(__m128i, __m128i)': target specific option mismatch
encrypt.cpp: _mm_aesenc_si128 (__m128i __X, __m128i __Y)
encrypt.cpp: ...

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