Implementation notes: x86, gpu, crypto_hash/triadhashv1

Computer: gpu
Architecture: x86
CPU ID: GenuineIntel-000206d7-bfebfbff
SUPERCOP version: 20190816
Operation: crypto_hash
Primitive: triadhashv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
2161443031 4 11315203 436 884add_sseg++_-m32_-march=core-avx-i_-O_-fomit-frame-pointer2019082420190816
2533402990 4 11318420 440 884add_sseg++_-m32_-march=corei7-avx_-O3_-fomit-frame-pointer2019082420190816
2664483031 4 11315203 436 884add_sseg++_-m32_-march=corei7-avx_-O_-fomit-frame-pointer2019082420190816
2699483022 4 11315555 436 884add_sseg++_-m32_-march=corei7-avx_-O2_-fomit-frame-pointer2019082420190816
2855162990 4 11318420 440 884add_sseg++_-m32_-march=native_-mtune=native_-O3_-fomit-frame-pointer2019082420190816
2856242990 4 11318420 440 884add_sseg++_-m32_-march=core-avx-i_-O3_-fomit-frame-pointer2019082420190816
2926363022 4 11315555 436 884add_sseg++_-m32_-march=native_-mtune=native_-O2_-fomit-frame-pointer2019082420190816
3038323031 4 11315203 436 884add_sseg++_-m32_-march=native_-mtune=native_-O_-fomit-frame-pointer2019082420190816
3050803022 4 11315555 436 884add_sseg++_-m32_-march=core-avx-i_-O2_-fomit-frame-pointer2019082420190816
3059883547 4 11315731 436 884add_sseg++_-m32_-march=core2_-msse4_-O_-fomit-frame-pointer2019082420190816
3140363495 4 11318664 440 884add_sseg++_-m32_-march=core2_-msse4_-O3_-fomit-frame-pointer2019082420190816
3217643495 4 11318644 440 884add_sseg++_-m32_-march=core2_-msse4.1_-O3_-fomit-frame-pointer2019082420190816
3242403511 4 11316067 436 884add_sseg++_-m32_-march=core2_-msse4.1_-O2_-fomit-frame-pointer2019082420190816
3306333415 4 11315971 436 884add_sseg++_-m32_-march=corei7_-O2_-fomit-frame-pointer2019082420190816
3351763511 4 11316067 436 884add_sseg++_-m32_-march=core2_-msse4_-O2_-fomit-frame-pointer2019082420190816
3636443547 4 11315731 436 884add_sseg++_-m32_-march=core2_-msse4.1_-O_-fomit-frame-pointer2019082420190816
3640121757 4 11313054 424 884add_sseg++_-m32_-march=corei7-avx_-Os_-fomit-frame-pointer2019082420190816
3691601757 4 11313054 424 884add_sseg++_-m32_-march=native_-mtune=native_-Os_-fomit-frame-pointer2019082420190816
3705403468 4 11315651 436 884add_sseg++_-m32_-march=corei7_-O_-fomit-frame-pointer2019082420190816
3837963415 4 11318584 440 884add_sseg++_-m32_-march=corei7_-O3_-fomit-frame-pointer2019082420190816
4347521757 4 11313054 424 884add_sseg++_-m32_-march=core-avx-i_-Os_-fomit-frame-pointer2019082420190816
4878241775 4 11313070 424 884add_sseg++_-m32_-march=core2_-msse4_-Os_-fomit-frame-pointer2019082420190816
5284881775 4 11313070 424 884add_sseg++_-m32_-march=core2_-msse4.1_-Os_-fomit-frame-pointer2019082420190816
5684321763 4 11313054 424 884add_sseg++_-m32_-march=corei7_-Os_-fomit-frame-pointer2019082420190816

Test failure

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

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

Test failure

Implementation: ref
Security model: unknown
Compiler: gcc -funroll-loops -m32 -O2 -fomit-frame-pointer
error 111
crypto_hash does not handle m=h overlap

Number of similar (compiler,implementation) pairs: 168, namely:
CompilerImplementations
gcc -funroll-loops -m32 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=athlon -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=athlon -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=athlon -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=athlon -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=barcelona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=barcelona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=barcelona -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=barcelona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i386 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i386 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i386 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i386 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i486 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i486 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i486 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=i486 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-2 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-2 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-2 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-2 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-3 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-3 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-3 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6-3 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k6 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k8 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k8 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k8 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=k8 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=nocona -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=nocona -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=nocona -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=nocona -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-m -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-m -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-m -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-m -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-mmx -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-mmx -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-mmx -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium-mmx -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium2 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium2 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium2 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium2 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium3 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium3 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium3 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium3 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium4 -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium4 -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium4 -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium4 -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentium -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentiumpro -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentiumpro -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentiumpro -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=pentiumpro -Os -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=prescott -O2 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=prescott -O3 -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=prescott -O -fomit-frame-pointer ref
gcc -funroll-loops -m32 -march=prescott -Os -fomit-frame-pointer ref
gcc -m32 -O2 -fomit-frame-pointer ref
gcc -m32 -O3 -fomit-frame-pointer ref
gcc -m32 -O -fomit-frame-pointer ref
gcc -m32 -Os -fomit-frame-pointer ref
gcc -m32 -march=athlon -O2 -fomit-frame-pointer ref
gcc -m32 -march=athlon -O3 -fomit-frame-pointer ref
gcc -m32 -march=athlon -O -fomit-frame-pointer ref
gcc -m32 -march=athlon -Os -fomit-frame-pointer ref
gcc -m32 -march=core-avx-i -O2 -fomit-frame-pointer ref
gcc -m32 -march=core-avx-i -O3 -fomit-frame-pointer ref
gcc -m32 -march=core-avx-i -O -fomit-frame-pointer ref
gcc -m32 -march=core-avx-i -Os -fomit-frame-pointer ref
gcc -m32 -march=core2 -O2 -fomit-frame-pointer ref
gcc -m32 -march=core2 -O3 -fomit-frame-pointer ref
gcc -m32 -march=core2 -O -fomit-frame-pointer ref
gcc -m32 -march=core2 -Os -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4.1 -O2 -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4.1 -O3 -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4.1 -O -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4.1 -Os -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4 -O2 -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4 -O3 -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4 -O -fomit-frame-pointer ref
gcc -m32 -march=core2 -msse4 -Os -fomit-frame-pointer ref
gcc -m32 -march=corei7-avx -O2 -fomit-frame-pointer ref
gcc -m32 -march=corei7-avx -O3 -fomit-frame-pointer ref
gcc -m32 -march=corei7-avx -O -fomit-frame-pointer ref
gcc -m32 -march=corei7-avx -Os -fomit-frame-pointer ref
gcc -m32 -march=corei7 -O2 -fomit-frame-pointer ref
gcc -m32 -march=corei7 -O3 -fomit-frame-pointer ref
gcc -m32 -march=corei7 -O -fomit-frame-pointer ref
gcc -m32 -march=corei7 -Os -fomit-frame-pointer ref
gcc -m32 -march=i386 -O2 -fomit-frame-pointer ref
gcc -m32 -march=i386 -O3 -fomit-frame-pointer ref
gcc -m32 -march=i386 -O -fomit-frame-pointer ref
gcc -m32 -march=i386 -Os -fomit-frame-pointer ref
gcc -m32 -march=i486 -O2 -fomit-frame-pointer ref
gcc -m32 -march=i486 -O3 -fomit-frame-pointer ref
gcc -m32 -march=i486 -O -fomit-frame-pointer ref
gcc -m32 -march=i486 -Os -fomit-frame-pointer ref
gcc -m32 -march=k6-2 -O2 -fomit-frame-pointer ref
gcc -m32 -march=k6-2 -O3 -fomit-frame-pointer ref
gcc -m32 -march=k6-2 -O -fomit-frame-pointer ref
gcc -m32 -march=k6-2 -Os -fomit-frame-pointer ref
gcc -m32 -march=k6-3 -O2 -fomit-frame-pointer ref
gcc -m32 -march=k6-3 -O3 -fomit-frame-pointer ref
gcc -m32 -march=k6-3 -O -fomit-frame-pointer ref
gcc -m32 -march=k6-3 -Os -fomit-frame-pointer ref
gcc -m32 -march=k6 -O2 -fomit-frame-pointer ref
gcc -m32 -march=k6 -O3 -fomit-frame-pointer ref
gcc -m32 -march=k6 -O -fomit-frame-pointer ref
gcc -m32 -march=k6 -Os -fomit-frame-pointer ref
gcc -m32 -march=k8 -O2 -fomit-frame-pointer ref
gcc -m32 -march=k8 -O3 -fomit-frame-pointer ref
gcc -m32 -march=k8 -O -fomit-frame-pointer ref
gcc -m32 -march=k8 -Os -fomit-frame-pointer ref
gcc -m32 -march=native -mtune=native -O2 -fomit-frame-pointer ref
gcc -m32 -march=native -mtune=native -O3 -fomit-frame-pointer ref
gcc -m32 -march=native -mtune=native -O -fomit-frame-pointer ref
gcc -m32 -march=native -mtune=native -Os -fomit-frame-pointer ref
gcc -m32 -march=nocona -O2 -fomit-frame-pointer ref
gcc -m32 -march=nocona -O3 -fomit-frame-pointer ref
gcc -m32 -march=nocona -O -fomit-frame-pointer ref
gcc -m32 -march=nocona -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium-m -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium-m -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium-m -O -fomit-frame-pointer ref
gcc -m32 -march=pentium-m -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium-mmx -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium-mmx -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium-mmx -O -fomit-frame-pointer ref
gcc -m32 -march=pentium-mmx -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium2 -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium2 -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium2 -O -fomit-frame-pointer ref
gcc -m32 -march=pentium2 -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium3 -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium3 -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium3 -O -fomit-frame-pointer ref
gcc -m32 -march=pentium3 -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium4 -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium4 -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium4 -O -fomit-frame-pointer ref
gcc -m32 -march=pentium4 -Os -fomit-frame-pointer ref
gcc -m32 -march=pentium -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentium -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentium -O -fomit-frame-pointer ref
gcc -m32 -march=pentium -Os -fomit-frame-pointer ref
gcc -m32 -march=pentiumpro -O2 -fomit-frame-pointer ref
gcc -m32 -march=pentiumpro -O3 -fomit-frame-pointer ref
gcc -m32 -march=pentiumpro -O -fomit-frame-pointer ref
gcc -m32 -march=pentiumpro -Os -fomit-frame-pointer ref
gcc -m32 -march=prescott -O2 -fomit-frame-pointer ref
gcc -m32 -march=prescott -O3 -fomit-frame-pointer ref
gcc -m32 -march=prescott -O -fomit-frame-pointer ref
gcc -m32 -march=prescott -Os -fomit-frame-pointer ref

Test failure

Implementation: ref
Security model: unknown
Compiler: gcc -m32 -march=barcelona -O2 -fomit-frame-pointer
error 111
crypto_hash does not handle m=h overlap
error 111
crypto_hash does not handle m=h overlap

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

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++ -m32 -O2 -fomit-frame-pointer
simd.cpp: simd.cpp: In function 'void triad_high_speed_hash(const unsigned char*, long long unsigned int, unsigned char*)':
simd.cpp: simd.cpp:152:136: warning: SSE vector return without SSE enabled changes the ABI [-Wpsabi]
simd.cpp: const __m128i outMask = _mm_set_epi8(0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);
simd.cpp: ^
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h: In function 'void triad_update_encryption(const __m128i*, __m128i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:135:27: note: called from here
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:33,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:1185:1: error: inlining failed in call to always_inline '__m128i _mm_srli_si128(__m128i, int)': target specific option mismatch
simd.cpp: _mm_srli_si128 (__m128i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~
simd.cpp: simd.cpp:134:26: note: called from here
simd.cpp: out[1] = _mm_srli_si128(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:33,
simd.cpp: from simd.cpp:16:
simd.cpp: ...

Number of similar (compiler,implementation) pairs: 44, namely:
CompilerImplementations
g++ -m32 -O2 -fomit-frame-pointer add_sse
g++ -m32 -O3 -fomit-frame-pointer add_sse
g++ -m32 -O -fomit-frame-pointer add_sse
g++ -m32 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=athlon -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=athlon -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=athlon -O -fomit-frame-pointer add_sse
g++ -m32 -march=athlon -Os -fomit-frame-pointer add_sse
g++ -m32 -march=i386 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=i386 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=i386 -O -fomit-frame-pointer add_sse
g++ -m32 -march=i386 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=i486 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=i486 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=i486 -O -fomit-frame-pointer add_sse
g++ -m32 -march=i486 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=k6-2 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=k6-2 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=k6-2 -O -fomit-frame-pointer add_sse
g++ -m32 -march=k6-2 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=k6-3 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=k6-3 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=k6-3 -O -fomit-frame-pointer add_sse
g++ -m32 -march=k6-3 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=k6 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=k6 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=k6 -O -fomit-frame-pointer add_sse
g++ -m32 -march=k6 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-mmx -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-mmx -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-mmx -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-mmx -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentium2 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium2 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium2 -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentium2 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentium -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentium -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentiumpro -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentiumpro -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentiumpro -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentiumpro -Os -fomit-frame-pointer add_sse

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++ -m32 -march=barcelona -O2 -fomit-frame-pointer
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h: In function 'void triad_update_encryption(const __m128i*, __m128i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:135:27: note: called from here
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:119:27: note: called from here
simd.cpp: out[0] = _mm_blendv_epi8(out[0], newa, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:98:27: note: called from here
simd.cpp: out[2] = _mm_blendv_epi8(out[2], newc, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: ...
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h: In function 'void triad_update_encryption(const __m128i*, __m128i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:135:27: note: called from here
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:119:27: note: called from here
simd.cpp: out[0] = _mm_blendv_epi8(out[0], newa, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:98:27: note: called from here
simd.cpp: out[2] = _mm_blendv_epi8(out[2], newc, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: ...

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

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++ -m32 -march=core2 -O2 -fomit-frame-pointer
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h: In function 'void triad_update_encryption(const __m128i*, __m128i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:135:27: note: called from here
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:119:27: note: called from here
simd.cpp: out[0] = _mm_blendv_epi8(out[0], newa, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:98:27: note: called from here
simd.cpp: out[2] = _mm_blendv_epi8(out[2], newc, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: ...

Number of similar (compiler,implementation) pairs: 24, namely:
CompilerImplementations
g++ -m32 -march=core2 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=core2 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=core2 -O -fomit-frame-pointer add_sse
g++ -m32 -march=core2 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=k8 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=k8 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=k8 -O -fomit-frame-pointer add_sse
g++ -m32 -march=k8 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=nocona -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=nocona -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=nocona -O -fomit-frame-pointer add_sse
g++ -m32 -march=nocona -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-m -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-m -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-m -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentium-m -Os -fomit-frame-pointer add_sse
g++ -m32 -march=pentium4 -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium4 -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=pentium4 -O -fomit-frame-pointer add_sse
g++ -m32 -march=pentium4 -Os -fomit-frame-pointer add_sse
g++ -m32 -march=prescott -O2 -fomit-frame-pointer add_sse
g++ -m32 -march=prescott -O3 -fomit-frame-pointer add_sse
g++ -m32 -march=prescott -O -fomit-frame-pointer add_sse
g++ -m32 -march=prescott -Os -fomit-frame-pointer add_sse

Compiler output

Implementation: add_sse
Security model: unknown
Compiler: g++ -m32 -march=pentium3 -O2 -fomit-frame-pointer
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:43:0,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h: In function 'void triad_update_encryption(const __m128i*, __m128i*) [with int i = 7]':
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/smmintrin.h:179:1: error: inlining failed in call to always_inline '__m128i _mm_blendv_epi8(__m128i, __m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_blendv_epi8 (__m128i __X, __m128i __Y, __m128i __M)
simd.cpp: ^~~~~~~~~~~~~~~
simd.cpp: simd.cpp:135:27: note: called from here
simd.cpp: out[1] = _mm_blendv_epi8(out[1], newb, BlendMaskList[i - 1]);
simd.cpp: ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:33,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:1185:1: error: inlining failed in call to always_inline '__m128i _mm_srli_si128(__m128i, int)': target specific option mismatch
simd.cpp: _mm_srli_si128 (__m128i __A, const int __N)
simd.cpp: ^~~~~~~~~~~~~~
simd.cpp: simd.cpp:134:26: note: called from here
simd.cpp: out[1] = _mm_srli_si128(in[1], i);
simd.cpp: ~~~~~~~~~~~~~~^~~~~~~~~~
simd.cpp: In file included from /usr/lib/gcc/x86_64-linux-gnu/7/include/xmmintrin.h:1252:0,
simd.cpp: from /usr/lib/gcc/x86_64-linux-gnu/7/include/x86intrin.h:33,
simd.cpp: from simd.cpp:16:
simd.cpp: /usr/lib/gcc/x86_64-linux-gnu/7/include/emmintrin.h:1291:1: error: inlining failed in call to always_inline '__m128i _mm_xor_si128(__m128i, __m128i)': target specific option mismatch
simd.cpp: _mm_xor_si128 (__m128i __A, __m128i __B)
simd.cpp: ^~~~~~~~~~~~~
simd.cpp: simd.cpp:133:3: note: called from here
simd.cpp: ...

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