Implementation notes: amd64, gpu, crypto_aead/triadaev1

Computer: gpu
Architecture: amd64
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_aead
Primitive: triadaev1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
947164410206 0 025776 784 928refgcc_-march=k8_-O3_-fomit-frame-pointer2019083020190816
952469614929 0 032552 784 928refgcc_-funroll-loops_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
962689615137 0 033504 784 928refgcc_-funroll-loops_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
964934010241 0 025544 784 928refgcc_-fno-schedule-insns_-O3_-fomit-frame-pointer2019083020190816
970273210417 0 025416 784 928refgcc_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
971222015354 0 032648 784 928refgcc_-funroll-loops_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
980344021218 0 026384 784 928refgcc_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
982107210206 0 025776 784 928refgcc_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
983641214862 0 033088 784 928refgcc_-funroll-loops_-march=k8_-O3_-fomit-frame-pointer2019083020190816
987184810145 0 025288 784 928refgcc_-m64_-march=corei7_-O3_-fomit-frame-pointer2019083020190816
987240810241 0 025544 784 928refgcc_-O3_-fomit-frame-pointer2019083020190816
988229214929 0 032552 784 928refgcc_-funroll-loops_-O3_-fomit-frame-pointer2019083020190816
989046010417 0 025416 784 928refgcc_-m64_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
1003701210145 0 025504 784 928refgcc_-m64_-march=corei7-avx_-O3_-fomit-frame-pointer2019083020190816
1004014815137 0 033504 784 928refgcc_-funroll-loops_-m64_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
1006903214929 0 032552 784 928refgcc_-funroll-loops_-m64_-O3_-fomit-frame-pointer2019083020190816
1010248010145 0 025504 784 928refgcc_-m64_-march=core-avx-i_-O3_-fomit-frame-pointer2019083020190816
1014464410145 0 025504 784 928refgcc_-m64_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019083020190816
1015779615354 0 032648 784 928refgcc_-funroll-loops_-march=nocona_-O3_-fomit-frame-pointer2019083020190816
1017872410161 0 025472 784 928refgcc_-m64_-march=core2_-O3_-fomit-frame-pointer2019083020190816
1030029610161 0 025472 784 928refgcc_-m64_-march=core2_-msse4_-O3_-fomit-frame-pointer2019083020190816
1037390410161 0 025408 784 928refgcc_-m64_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019083020190816
1040866414862 0 033088 784 928refgcc_-funroll-loops_-m64_-march=k8_-O3_-fomit-frame-pointer2019083020190816
1057949210241 0 025544 784 928refgcc_-m64_-O3_-fomit-frame-pointer2019083020190816
1259620810609 0 026384 784 928refgcc_-march=barcelona_-O3_-fomit-frame-pointer2019083020190816
1652410810145 0 025408 784 928refgcc_-march=native_-mtune=native_-O3_-fomit-frame-pointer_-fwrapv2019083020190816
3273522020533 0 037629 760 1160refclang_-O3_-fwrapv_-mavx_-maes_-mpclmul_-fomit-frame-pointer_-Qunused-arguments2019083020190816
3562582020811 0 039645 760 872refclang_-O3_-fomit-frame-pointer_-Qunused-arguments2019083020190816
3847470420843 0 041005 760 872refclang_-mcpu=cortex-a9_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
3848386820533 0 037629 760 1160refclang_-O3_-fwrapv_-mavx_-fomit-frame-pointer_-Qunused-arguments2019083020190816
3968298820613 0 038477 760 1160refclang_-march=native_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
3968979620843 0 041005 760 872refclang_-mcpu=cortex-a8_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
4060114820843 0 041005 760 872refclang_-mcpu=native_-mfpu=neon_-O3_-fomit-frame-pointer_-fwrapv_-Qunused-arguments2019083020190816
4087808020613 0 038477 760 1160refclang_-O3_-fwrapv_-march=native_-fomit-frame-pointer_-Qunused-arguments2019083020190816
4781356013430 0 029461 768 928refgcc_-funroll-loops_-march=k8_-O2_-fomit-frame-pointer2019083020190816
4819322813828 0 029565 768 928refgcc_-funroll-loops_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
4820332013689 0 029893 768 928refgcc_-funroll-loops_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
4866848412396 0 028589 768 928refgcc_-funroll-loops_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
4892789613417 0 029541 768 928refgcc_-funroll-loops_-m64_-O2_-fomit-frame-pointer2019083020190816
4901982013417 0 029541 768 928refgcc_-funroll-loops_-O2_-fomit-frame-pointer2019083020190816
4937029211769 0 028029 768 928refgcc_-funroll-loops_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
4944432813828 0 029565 768 928refgcc_-funroll-loops_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
4957454411769 0 028029 768 928refgcc_-funroll-loops_-march=k8_-O_-fomit-frame-pointer2019083020190816
4973084411746 0 027861 768 928refgcc_-funroll-loops_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
5011408812017 0 028341 768 928refgcc_-funroll-loops_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
5044000412396 0 028589 768 928refgcc_-funroll-loops_-march=nocona_-O_-fomit-frame-pointer2019083020190816
5048345213417 0 029541 768 928refgcc_-funroll-loops_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
5060632813430 0 029461 768 928refgcc_-funroll-loops_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
5088572011746 0 027861 768 928refgcc_-funroll-loops_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
5116363213689 0 029893 768 928refgcc_-funroll-loops_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
5149656012017 0 028341 768 928refgcc_-funroll-loops_-m64_-O_-fomit-frame-pointer2019083020190816
5160423612017 0 028341 768 928refgcc_-funroll-loops_-O_-fomit-frame-pointer2019083020190816
610678327761 0 020629 768 928refgcc_-m64_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019083020190816
623250607761 0 020605 768 928refgcc_-m64_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019083020190816
623823567857 0 020701 768 928refgcc_-fno-schedule-insns_-O2_-fomit-frame-pointer2019083020190816
6300499616338 0 021325 768 928refgcc_-m64_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
632451125951 0 018837 768 928refgcc_-m64_-march=k8_-O_-fomit-frame-pointer2019083020190816
635393327857 0 020701 768 928refgcc_-m64_-O2_-fomit-frame-pointer2019083020190816
636532367670 0 020525 768 928refgcc_-m64_-march=k8_-O2_-fomit-frame-pointer2019083020190816
644364488169 0 021325 768 928refgcc_-march=barcelona_-O2_-fomit-frame-pointer2019083020190816
646897165943 0 018813 768 928refgcc_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
649959407761 0 020629 768 928refgcc_-m64_-march=core2_-msse4_-O2_-fomit-frame-pointer2019083020190816
650337607670 0 020525 768 928refgcc_-march=k8_-O2_-fomit-frame-pointer2019083020190816
653833327761 0 020605 768 928refgcc_-march=native_-mtune=native_-O2_-fomit-frame-pointer_-fwrapv2019083020190816
657694166418 0 019269 768 928refgcc_-m64_-march=nocona_-O_-fomit-frame-pointer2019083020190816
659115487857 0 020701 768 928refgcc_-O2_-fomit-frame-pointer2019083020190816
659419447710 0 020245 768 928refgcc_-m64_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
6600268811886 0 018813 768 928refgcc_-m64_-march=barcelona_-O_-fomit-frame-pointer2019083020190816
661099566052 0 018925 768 928refgcc_-m64_-march=corei7-avx_-O_-fomit-frame-pointer2019083020190816
662328325804 0 018685 768 928refgcc_-m64_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019083020190816
665826205804 0 018685 768 928refgcc_-m64_-march=core2_-msse4_-O_-fomit-frame-pointer2019083020190816
666220007729 0 020573 768 928refgcc_-m64_-march=corei7_-O2_-fomit-frame-pointer2019083020190816
671485007761 0 020629 768 928refgcc_-m64_-march=core2_-O2_-fomit-frame-pointer2019083020190816
672334206052 0 018925 768 928refgcc_-m64_-march=corei7_-O_-fomit-frame-pointer2019083020190816
673293527761 0 020605 768 928refgcc_-m64_-march=corei7-avx_-O2_-fomit-frame-pointer2019083020190816
673873565951 0 018837 768 928refgcc_-march=k8_-O_-fomit-frame-pointer2019083020190816
674189686163 0 019037 768 928refgcc_-O_-fomit-frame-pointer2019083020190816
674442366418 0 019269 768 928refgcc_-march=nocona_-O_-fomit-frame-pointer2019083020190816
676862885304 0 017201 752 896refgcc_-funroll-loops_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
677962206052 0 018925 768 928refgcc_-m64_-march=native_-mtune=native_-O_-fomit-frame-pointer2019083020190816
678701965804 0 018685 768 928refgcc_-m64_-march=core2_-O_-fomit-frame-pointer2019083020190816
679558726052 0 018925 768 928refgcc_-m64_-march=core-avx-i_-O_-fomit-frame-pointer2019083020190816
679820326052 0 018925 768 928refgcc_-march=native_-mtune=native_-O_-fomit-frame-pointer_-fwrapv2019083020190816
685848325313 0 017217 752 896refgcc_-funroll-loops_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
695147687710 0 020245 768 928refgcc_-march=nocona_-O2_-fomit-frame-pointer2019083020190816
699134647761 0 020605 768 928refgcc_-m64_-march=core-avx-i_-O2_-fomit-frame-pointer2019083020190816
699941765304 0 017201 752 896refgcc_-funroll-loops_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
706780885313 0 017217 752 896refgcc_-funroll-loops_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
707209165313 0 017217 752 896refgcc_-funroll-loops_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
711467126163 0 019037 768 928refgcc_-m64_-O_-fomit-frame-pointer2019083020190816
712578845313 0 017217 752 896refgcc_-funroll-loops_-march=k8_-Os_-fomit-frame-pointer2019083020190816
716284966163 0 019037 768 928refgcc_-fno-schedule-insns_-O_-fomit-frame-pointer2019083020190816
726701005276 0 017145 752 896refgcc_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
737755365276 0 017145 752 896refgcc_-m64_-march=core2_-Os_-fomit-frame-pointer2019083020190816
744213885313 0 017217 752 896refgcc_-funroll-loops_-Os_-fomit-frame-pointer2019083020190816
744713285276 0 017145 752 896refgcc_-m64_-march=corei7-avx_-Os_-fomit-frame-pointer2019083020190816
760035965276 0 017145 752 896refgcc_-m64_-march=core-avx-i_-Os_-fomit-frame-pointer2019083020190816
761309605276 0 017145 752 896refgcc_-m64_-march=core2_-msse4_-Os_-fomit-frame-pointer2019083020190816
764053205276 0 017145 752 896refgcc_-m64_-march=k8_-Os_-fomit-frame-pointer2019083020190816
768198205276 0 017145 752 896refgcc_-march=k8_-Os_-fomit-frame-pointer2019083020190816
770192845276 0 017145 752 896refgcc_-m64_-march=corei7_-Os_-fomit-frame-pointer2019083020190816
770399925276 0 017145 752 896refgcc_-Os_-fomit-frame-pointer2019083020190816
771213645276 0 017145 752 896refgcc_-m64_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019083020190816
774888645313 0 017217 752 896refgcc_-funroll-loops_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
775030245276 0 017145 752 896refgcc_-m64_-Os_-fomit-frame-pointer2019083020190816
7783177210552 0 017145 752 896refgcc_-m64_-march=barcelona_-Os_-fomit-frame-pointer2019083020190816
779427365276 0 017145 752 896refgcc_-m64_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019083020190816
780061445276 0 017145 752 896refgcc_-fno-schedule-insns_-Os_-fomit-frame-pointer2019083020190816
802597245276 0 017145 752 896refgcc_-march=native_-mtune=native_-Os_-fomit-frame-pointer_-fwrapv2019083020190816
811928525267 0 017129 752 896refgcc_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
840706925313 0 017217 752 896refgcc_-funroll-loops_-m64_-Os_-fomit-frame-pointer2019083020190816
855473005267 0 017129 752 896refgcc_-m64_-march=nocona_-Os_-fomit-frame-pointer2019083020190816
2253306848424 0 023071 768 888refgcc_-funroll-loops2019083020190816
2576176488424 0 023071 768 888refgcc2019083020190816
2583983128424 0 023071 768 888refcc2019083020190816

Test failure

Implementation: add_avx
Security model: unknown
Compiler: g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer
error 111

Number of similar (compiler,implementation) pairs: 9, namely:
CompilerImplementations
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer add_avx
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer add_avx
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer add_avx
g++ -m64 -march=core-avx2 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx2 -O -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx2 -Os -fomit-frame-pointer add_sse
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: add_avx
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
simd.cpp: simd.cpp:105:14: error: always_inline function '_mm_blendv_epi8' requires target feature 'ssse3', but would be inlined into function 'triad_update_56x_encryption' that is compiled without support for 'ssse3'
simd.cpp: out[2] = _mm_blendv_epi8(out[2], newc, BlendMask);
simd.cpp: ^
simd.cpp: simd.cpp:126:14: error: always_inline function '_mm_blendv_epi8' requires target feature 'ssse3', but would be inlined into function 'triad_update_56x_encryption' that is compiled without support for 'ssse3'
simd.cpp: out[0] = _mm_blendv_epi8(out[0], newa, BlendMask);
simd.cpp: ^
simd.cpp: simd.cpp:142:14: error: always_inline function '_mm_blendv_epi8' requires target feature 'ssse3', but would be inlined into function 'triad_update_56x_encryption' that is compiled without support for 'ssse3'
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMask);
simd.cpp: ^
simd.cpp: 3 errors generated.

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

Compiler output

Implementation: add_avx
Security model: unknown
Compiler: clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments
simd.cpp: simd.cpp:402:13: error: always_inline function '_mm256_unpacklo_epi8' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[0] = _mm256_unpacklo_epi8(in[2], in[1]);
simd.cpp: ^
simd.cpp: simd.cpp:410:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[0] = _mm256_xor_si256(in[0], _mm256_castsi128_si256(p_bar_input));
simd.cpp: ^
simd.cpp: simd.cpp:411:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[1] = _mm256_xor_si256(in[1], _mm256_castsi128_si256(p_bar_input));
simd.cpp: ^
simd.cpp: simd.cpp:412:13: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[2] = _mm256_xor_si256(in[2], _mm256_castsi128_si256(p_bar_input));
simd.cpp: ^
simd.cpp: simd.cpp:427:17: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[0] = _mm256_xor_si256(in[0], _mm256_castsi128_si256(xmm_a));
simd.cpp: ^
simd.cpp: simd.cpp:428:17: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[1] = _mm256_xor_si256(in[1], _mm256_castsi128_si256(xmm_a));
simd.cpp: ^
simd.cpp: simd.cpp:429:17: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[2] = _mm256_xor_si256(in[2], _mm256_castsi128_si256(xmm_a));
simd.cpp: ^
simd.cpp: simd.cpp:441:15: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: in[0] = _mm256_xor_si256(in[0], _mm256_castsi128_si256(xmm_b));
simd.cpp: ^
simd.cpp: simd.cpp:442:15: error: always_inline function '_mm256_xor_si256' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: ...

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

Compiler output

Implementation: add_avx
Security model: unknown
Compiler: g++
simd.cpp: simd.cpp: In function 'void dispReg(__m256i)':
simd.cpp: simd.cpp:59:13: note: The ABI for passing parameters with 32-byte alignment has changed in GCC 4.6
simd.cpp: static void dispReg(__m256i in) {
simd.cpp: ^~~~~~~
simd.cpp: simd.cpp: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: simd.cpp:400:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
simd.cpp: in[2] = _mm256_load_si256((const __m256i *)(tmp0));
simd.cpp: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_update_encryption(const __m256i*, __m256i*) [with int i = 1]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:207:1: error: inlining failed in call to always_inline '__m256i _mm256_blendv_epi8(__m256i, __m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M)
simd.cpp: ^~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:224:32: note: called from here
simd.cpp: out[1] = _mm256_blendv_epi8(out[1], newb, BlendMask256List[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '__m256i _mm256_xor_si256(__m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_xor_si256 (__m256i __A, __m256i __B)
simd.cpp: ^~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:222:5: note: called from here
simd.cpp: ...

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

Compiler output

Implementation: add_avx
Security model: unknown
Compiler: g++ -O2 -fomit-frame-pointer
simd.cpp: simd.cpp: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: simd.cpp:400:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
simd.cpp: in[2] = _mm256_load_si256((const __m256i *)(tmp0));
simd.cpp: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_update_encryption(const __m256i*, __m256i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:207:1: error: inlining failed in call to always_inline '__m256i _mm256_blendv_epi8(__m256i, __m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M)
simd.cpp: ^~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:224:32: note: called from here
simd.cpp: out[1] = _mm256_blendv_epi8(out[1], newb, BlendMask256List[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:746:1: error: inlining failed in call to always_inline '__m256i _mm256_srli_si256(__m256i, int)': target specific option mismatch
simd.cpp: _mm256_srli_si256 (__m256i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:223:31: note: called from here
simd.cpp: out[1] = _mm256_srli_si256(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: ...

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

Compiler output

Implementation: add_avx
Security model: unknown
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
simd.cpp: simd.cpp: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: simd.cpp:400:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
simd.cpp: in[2] = _mm256_load_si256((const __m256i *)(tmp0));
simd.cpp: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_update_encryption(const __m256i*, __m256i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:207:1: error: inlining failed in call to always_inline '__m256i _mm256_blendv_epi8(__m256i, __m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M)
simd.cpp: ^~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:224:32: note: called from here
simd.cpp: out[1] = _mm256_blendv_epi8(out[1], newb, BlendMask256List[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:746:1: error: inlining failed in call to always_inline '__m256i _mm256_srli_si256(__m256i, int)': target specific option mismatch
simd.cpp: _mm256_srli_si256 (__m256i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:223:31: note: called from here
simd.cpp: out[1] = _mm256_srli_si256(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: ...
simd.cpp: simd.cpp: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: simd.cpp:400:11: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
simd.cpp: in[2] = _mm256_load_si256((const __m256i *)(tmp0));
simd.cpp: ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_update_encryption(const __m256i*, __m256i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:207:1: error: inlining failed in call to always_inline '__m256i _mm256_blendv_epi8(__m256i, __m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M)
simd.cpp: ^~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:224:32: note: called from here
simd.cpp: out[1] = _mm256_blendv_epi8(out[1], newb, BlendMask256List[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:746:1: error: inlining failed in call to always_inline '__m256i _mm256_srli_si256(__m256i, int)': target specific option mismatch
simd.cpp: _mm256_srli_si256 (__m256i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:223:31: note: called from here
simd.cpp: out[1] = _mm256_srli_si256(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: ...

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

Compiler output

Implementation: add_avx
Security model: unknown
Compiler: g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_update_encryption(const __m256i*, __m256i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:207:1: error: inlining failed in call to always_inline '__m256i _mm256_blendv_epi8(__m256i, __m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_blendv_epi8 (__m256i __X, __m256i __Y, __m256i __M)
simd.cpp: ^~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:224:32: note: called from here
simd.cpp: out[1] = _mm256_blendv_epi8(out[1], newb, BlendMask256List[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:746:1: error: inlining failed in call to always_inline '__m256i _mm256_srli_si256(__m256i, int)': target specific option mismatch
simd.cpp: _mm256_srli_si256 (__m256i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:223:31: note: called from here
simd.cpp: out[1] = _mm256_srli_si256(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:913:1: error: inlining failed in call to always_inline '__m256i _mm256_xor_si256(__m256i, __m256i)': target specific option mismatch
simd.cpp: _mm256_xor_si256 (__m256i __A, __m256i __B)
simd.cpp: ^~~~~~~~~~~~~~~~
simd.cpp: ...

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

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: clang++ -O3 -fomit-frame-pointer -Qunused-arguments
simd.cpp: simd.cpp:237:12: error: always_inline function '_mm_broadcastq_epi64' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: inR[0] = _mm_broadcastq_epi64(in[0]);
simd.cpp: ^
simd.cpp: simd.cpp:238:12: error: always_inline function '_mm_broadcastq_epi64' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: inR[1] = _mm_broadcastq_epi64(in[1]);
simd.cpp: ^
simd.cpp: simd.cpp:239:12: error: always_inline function '_mm_broadcastq_epi64' requires target feature 'avx2', but would be inlined into function 'triad_high_speed_encryption' that is compiled without support for 'avx2'
simd.cpp: inR[2] = _mm_broadcastq_epi64(in[2]);
simd.cpp: ^
simd.cpp: 3 errors generated.

Number of similar (compiler,implementation) pairs: 8, namely:
CompilerImplementations
clang++ -O3 -fomit-frame-pointer -Qunused-arguments add_sse
clang++ -O3 -fwrapv -march=native -fomit-frame-pointer -Qunused-arguments add_sse
clang++ -O3 -fwrapv -mavx -fomit-frame-pointer -Qunused-arguments add_sse
clang++ -O3 -fwrapv -mavx -maes -mpclmul -fomit-frame-pointer -Qunused-arguments add_sse
clang++ -march=native -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments add_sse
clang++ -mcpu=cortex-a8 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments add_sse
clang++ -mcpu=cortex-a9 -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments add_sse
clang++ -mcpu=native -mfpu=neon -O3 -fomit-frame-pointer -fwrapv -Qunused-arguments add_sse

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:237:32: note: called from here
simd.cpp: inR[0] = _mm_broadcastq_epi64(in[0]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:238:32: note: called from here
simd.cpp: inR[1] = _mm_broadcastq_epi64(in[1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: ...

Number of similar (compiler,implementation) pairs: 69, namely:
CompilerImplementations
g++ add_sse
g++ -O2 -fomit-frame-pointer add_sse
g++ -O3 -fomit-frame-pointer add_sse
g++ -O -fomit-frame-pointer add_sse
g++ -Os -fomit-frame-pointer add_sse
g++ -fno-schedule-insns -O2 -fomit-frame-pointer add_sse
g++ -fno-schedule-insns -O3 -fomit-frame-pointer add_sse
g++ -fno-schedule-insns -O -fomit-frame-pointer add_sse
g++ -fno-schedule-insns -Os -fomit-frame-pointer add_sse
g++ -funroll-loops -fno-schedule-insns -O2 -fomit-frame-pointer add_sse
g++ -funroll-loops -fno-schedule-insns -O3 -fomit-frame-pointer add_sse
g++ -funroll-loops -fno-schedule-insns -O -fomit-frame-pointer add_sse
g++ -funroll-loops -fno-schedule-insns -Os -fomit-frame-pointer add_sse
g++ -m64 -O2 -fomit-frame-pointer add_sse
g++ -m64 -O3 -fomit-frame-pointer add_sse
g++ -m64 -O -fomit-frame-pointer add_sse
g++ -m64 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx-i -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx-i -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx-i -O -fomit-frame-pointer add_sse
g++ -m64 -march=core-avx-i -Os -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -O -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4.1 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4.1 -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4.1 -O -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4.1 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4 -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4 -O -fomit-frame-pointer add_sse
g++ -m64 -march=core2 -msse4 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=corei7-avx -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=corei7-avx -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=corei7-avx -O -fomit-frame-pointer add_sse
g++ -m64 -march=corei7-avx -Os -fomit-frame-pointer add_sse
g++ -m64 -march=corei7 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=corei7 -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=corei7 -O -fomit-frame-pointer add_sse
g++ -m64 -march=corei7 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=k8 -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=k8 -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=k8 -O -fomit-frame-pointer add_sse
g++ -m64 -march=k8 -Os -fomit-frame-pointer add_sse
g++ -m64 -march=native -mtune=native -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=native -mtune=native -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=native -mtune=native -O -fomit-frame-pointer add_sse
g++ -m64 -march=native -mtune=native -Os -fomit-frame-pointer add_sse
g++ -m64 -march=nocona -O2 -fomit-frame-pointer add_sse
g++ -m64 -march=nocona -O3 -fomit-frame-pointer add_sse
g++ -m64 -march=nocona -O -fomit-frame-pointer add_sse
g++ -m64 -march=nocona -Os -fomit-frame-pointer add_sse
g++ -march=barcelona -O2 -fomit-frame-pointer add_sse
g++ -march=barcelona -O3 -fomit-frame-pointer add_sse
g++ -march=barcelona -O -fomit-frame-pointer add_sse
g++ -march=barcelona -Os -fomit-frame-pointer add_sse
g++ -march=k8 -O2 -fomit-frame-pointer add_sse
g++ -march=k8 -O3 -fomit-frame-pointer add_sse
g++ -march=k8 -O -fomit-frame-pointer add_sse
g++ -march=k8 -Os -fomit-frame-pointer add_sse
g++ -march=native -mtune=native -O2 -fomit-frame-pointer -fwrapv add_sse
g++ -march=native -mtune=native -O3 -fomit-frame-pointer -fwrapv add_sse
g++ -march=native -mtune=native -O -fomit-frame-pointer -fwrapv add_sse
g++ -march=native -mtune=native -Os -fomit-frame-pointer -fwrapv add_sse
g++ -march=nocona -O2 -fomit-frame-pointer add_sse
g++ -march=nocona -O3 -fomit-frame-pointer add_sse
g++ -march=nocona -O -fomit-frame-pointer add_sse
g++ -march=nocona -Os -fomit-frame-pointer add_sse

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++ -m64 -march=barcelona -O2 -fomit-frame-pointer
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:237:32: note: called from here
simd.cpp: inR[0] = _mm_broadcastq_epi64(in[0]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:238:32: note: called from here
simd.cpp: inR[1] = _mm_broadcastq_epi64(in[1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: ...
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h: In function 'void triad_high_speed_encryption(unsigned char*, const unsigned char*, long long unsigned int, const unsigned char*, long long unsigned int, const unsigned char*, const unsigned char*)':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:237:32: note: called from here
simd.cpp: inR[0] = _mm_broadcastq_epi64(in[0]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: simd.cpp:238:32: note: called from here
simd.cpp: inR[1] = _mm_broadcastq_epi64(in[1]);
simd.cpp: ~~~~~~~~~~~~~~~~~~~~^~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/immintrin.h:43:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:48,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/avx2intrin.h:1034:1: error: inlining failed in call to always_inline '__m128i _mm_broadcastq_epi64(__m128i)': target specific option mismatch
simd.cpp: _mm_broadcastq_epi64 (__m128i __X)
simd.cpp: ^~~~~~~~~~~~~~~~~~~~
simd.cpp: ...

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